Проблема помех между Qt GUI и OpenCV2.2 imageshow - PullRequest
0 голосов
/ 18 марта 2011

Я разрабатываю приложение для стереовидения с использованием OpenCV, Qt creator и MinGW под Windows 7. В предыдущей версии OpenCV 2.0 у меня был основной виджет Qt с множеством SpinBox для управления процессом стереофонического сопоставления OpenCV и три окна, созданныеПодпрограммы OpenCV для показа левого, правого ракурсов и реконструкции глубины изображения, и все в порядке.Теперь я перешел на OpenCV 2.2, что, между прочим, кажется намного лучше, но я заметил, что окна, созданные OpenCV, на самом деле переопределяют основной виджет Qt, поэтому с ним невозможно взаимодействовать.Очевидным решением было бы НЕ использовать OpenCV GUI вообще и преобразовывать изображения CvMat в IplImages, а затем в QImage для размещения его внутри виджета Qt.Но это не так просто ... Я пытался использовать метод IplImageToQImage, но по какой-то причине он вылетает.Поэтому, прежде чем углубляться в это сложное дело, я хотел бы узнать, есть ли какой-нибудь простой способ избежать OpenCV, чтобы он продолжал фокусироваться на своих собственных окнах, как это было в версии 2.0 ... спасибо!

Ответы [ 2 ]

2 голосов
/ 21 мая 2011

У меня была похожая проблема с OpenCV 2.2, но я не уверен, что это именно то, что у вас есть: HighGUI с поддержкой Qt создает свое собственное приложение QApplication, и это не будет работать, если вы создали свое собственное. Я опубликовал отчет об ошибке, который включает в себя патч. С тех пор я использую этот патч без проблем (Windows, VS2008, Qt 4.7). Смотри https://code.ros.org/trac/opencv/ticket/919

0 голосов
/ 19 марта 2011

Я не уверен, насколько это относится к вашей проблеме, и я довольно новичок в openCV, но я передаю данные Mat непосредственно в QImage, чтобы у меня не возникало проблем с openCV. (Я использую 2.2 на QT4.7 в OSX)

QImage imgToDisp ( (uchar*) Mat.data, Mat.cols, Mat.rows, Mat.step, QImage::Format_XXX );

Надеюсь, что это работает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...