URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10132
[ Назад ]

Исходное сообщение
"Рисование в Ubuntu (Qt, OpenCV)"

Отправлено Алексей , 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, но, как выяснилось, с русским языком не дружит и она...


Содержание

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

imagemagic/graphicsmagic


"Рисование в Ubuntu (Qt, OpenCV)"
Отправлено Алексей , 14-Дек-16 15:00 
Если кому будет интересно, решил всё при помощи библиотек FREETYPE и ICU.

"Рисование в Ubuntu (Qt, OpenCV)"
Отправлено _Mister , 27-Июн-17 13:46 
В Qt лучше не блокировать ошибки, можно и картинку не увидеть.

"Рисование в Ubuntu (Qt, OpenCV)"
Отправлено _Mister , 28-Июн-17 05:46 
А как вы без X-ов сделаете. Только в Ncurses.