1

将 IplImage 集成和显示到 Qt GUI 中的最佳方法是什么?这可以使用OpenGL完成吗?如果是,如何?

4

1 回答 1

1

好吧,我在这里回答我自己的问题。
一年以来,我一直在使用 OpenCV,并且很多时候我不得不编写打开视频文件并将其流式传输的代码。
最近,我一直在使用 Qt 来提供高级 gui,并且我想出了一个使用 OpenGL 在 Qt GUI 上显示 IplImages 的解决方案(我花了很多时间挣扎,但最终成功了)。尽管可以使用 Qt highgui 支持构建 OpenCV,但我热衷于学习一点 OpenGL 并在我的应用程序中使用它。
我认为这对于需要一个基本框架来为其应用程序运行视频的人会有所帮助。
这个基本框架可用于广泛的应用,如视频内容分析、人脸识别、模式识别等。从更广泛的意义上说,这基本上是一个没有音频支持的视频播放器。因此,如果您愿意,可以添加音频支持并使其成为视频播放器。它将播放几乎所有格式,因为 opencv 使用 ffmpeg 播放视频。我已经为它创建了一个 C++ 库,我非常广泛地使用它:

主要课程有:

QVideo : The main widget, providing functionality to open a video/rtsp stream and play it  
QIplImage: The core display widget. It's a QGLWidget which renders an IplImage
BackgroundWorker: This is a thread which runs in the background to retrieve images
from the stream. It is mandatory to run the frame grabber in a background thread,
otherwise it interferes with the GUI thread. All the image processing can be done in 
this thread

提供了源代码,因此您可以根据需要对其进行修改。安装库后,您可以在 qt 应用程序中使用它,如下所示:

//Create an object
QVideo* video=new QVideo("Name",);
//set geometry (optional)
setCentralWidget(video);

要构建库,您需要安装 qt 和 opencv(支持 ffmpeg)。该库根据体系结构安装在 /usr/lib 或 /usr/lib64 中。包含文件安装在 /usr/local/include 当然,如果需要,所有这些都可以在项目文件中进行更改。要安装,只需解压缩包,然后运行 ​​qmake、make 和 sudo make install。注意:该项目是为 unix 配置的,需要针对 windows 构建进行更改。给我留言以获取更多信息。

于 2012-11-01T16:33:03.487 回答