The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"Рисование в Ubuntu (Qt, OpenCV)"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Библиотеки, функции)
Изначальное сообщение [ Отслеживать ]

"Рисование в Ubuntu (Qt, OpenCV)"  –1 +/
Сообщение от Алексей email(??) on 09-Дек-16, 19:14 
Доброго времени суток!

У меня, как выяснилось, весьма нетривиальная задача. Нужно под Ubuntu 14 написать приложение, которое автоматически создает графический файл (коллаж), включающий в себя фотографии и текстовые подписи. Сам коллаж я вполне успешно делаю на OpenCV. Но здесь встают следующие ограничения:
- надписи должны быть на русском языке;
- приложение должно быть консольным (должно работать без "иксов" в виде демона и запускаться через init.d).

Проблема началась тогда, когда обнаружилось, что OpenCV (как это ни странно) не дружит с UTF8, а следовательно, и с русским языком. Эту ветку развития пришлось забросить.

Тогда я пошел в обход, сделал проект в Qt5 и воспользовался классами QImage и QPainter, потом скопировал полученное изображение в матрицу OpenCV (благо, Qt с русским языком дружит). Но здесь не вышло с запуском приложения в виде демона: QPainter при запуске из-под консоли (класс QApplication был заменен на QCoreApplication) выдает ошибку сегментирования.

Когда не вышло здесь, я вернул QApplication на место и попробовал запустить своё приложение с ключом -platform offscreen, что исключило все вылеты программы, но возникла проблема со шрифтами: при старте приложения выдавалась ошибка QFontDatabase: Cannot find font directory, и приложение снова вываливалось с ошибкой сегментирования.

Тогда я установил переменную окружения QT_QPA_FONTDIR=/usr/share/fonts. Ошибка перестала возникать, но вместо русских символов на коллаже стали отображаться пустые квадратики.

Может быть, кто-нибудь мне сможет подсказать какую-то альтернативу, или то место, где я не додавил проблему до её логичного решения?

UPD: попробовал альтернативу - библиотеку CImg, но, как выяснилось, с русским языком не дружит и она...

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Рисование в Ubuntu (Qt, OpenCV)"  +/
Сообщение от тень_pavel_simple on 13-Дек-16, 19:30 
>[оверквотинг удален]
> Когда не вышло здесь, я вернул QApplication на место и попробовал запустить
> своё приложение с ключом -platform offscreen, что исключило все вылеты программы,
> но возникла проблема со шрифтами: при старте приложения выдавалась ошибка QFontDatabase:
> Cannot find font directory, и приложение снова вываливалось с ошибкой сегментирования.
> Тогда я установил переменную окружения QT_QPA_FONTDIR=/usr/share/fonts. Ошибка перестала
> возникать, но вместо русских символов на коллаже стали отображаться пустые квадратики.
> Может быть, кто-нибудь мне сможет подсказать какую-то альтернативу, или то место, где
> я не додавил проблему до её логичного решения?
> UPD: попробовал альтернативу - библиотеку CImg, но, как выяснилось, с русским языком
> не дружит и она...

imagemagic/graphicsmagic

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Рисование в Ubuntu (Qt, OpenCV)"  +/
Сообщение от Алексей email(??) on 14-Дек-16, 15:00 
Если кому будет интересно, решил всё при помощи библиотек FREETYPE и ICU.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Рисование в Ubuntu (Qt, OpenCV)"  +/
Сообщение от _Mister (ok) on 27-Июн-17, 13:46 
В Qt лучше не блокировать ошибки, можно и картинку не увидеть.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

4. "Рисование в Ubuntu (Qt, OpenCV)"  +/
Сообщение от _Mister (ok) on 28-Июн-17, 05:46 
А как вы без X-ов сделаете. Только в Ncurses.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


  Закладки на сайте
  Проследить за страницей
Created 1996-2017 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  
Hosting by Ihor