我正在开发一个使用OpenCV,Qt创建者和MinGW在Windows 7下的立体视觉应用程序。在以前的版本OpenCV 2.0中,我有一个Qt主要小部件,有大量SpinBoxes来控制OpenCV立体声匹配过程,以及三个窗口由OpenCV例程显示左,右视图和图像深度重建,一切都很顺利。 现在我转向OpenCV 2.2,它看起来好多了,但我注意到OpenCV创建的窗口实际上覆盖了Qt主要小部件,因此无法与它进行交互。显而易见的解决方案是根本不使用OpenCV GUI并将CvMat图像转换为IplImages,然后转换为QImage以便在Qt小部件中进行翻转。但这并不容易......我尝试使用IplImageToQImage方法,但由于某种原因它崩溃了。 在深入研究这个难题之前,我想知道是否有一些简单的方法可以避免OpenCV继续关注自己的窗口,就像它在版本2.0中发生的那样......谢谢!
答案 0 :(得分:2)
我遇到了与OpenCV 2.2类似的问题,不确定它是否与您拥有的一样:支持Qt的HighGUI会创建自己的QApplication,如果您创建了自己的QApplication,这将无效。我发布了一个包含补丁的错误报告。从那以后我一直在使用这个补丁没有问题(Windows,VS2008,Qt 4.7)。见https://code.ros.org/trac/opencv/ticket/919
答案 1 :(得分:0)
我不确定这对你的问题有多重要,我对openCV很新,但我将Mat数据直接传递给QImage,所以我没有任何与openCV相关的崩溃问题。 (我在OSX中的QT4.7上使用2.2)
QImage imgToDisp ( (uchar*) Mat.data, Mat.cols, Mat.rows, Mat.step, QImage::Format_XXX );
希望对你有用。