如何使用OpenGL在QT接口上显示Iplimage流



将IPLIMAGE集成和显示QT GUI的最佳方法是什么?可以使用OpenGL完成吗?如果是,如何?

好吧,我在这里回答自己的问题。
从现在开始我就一直在与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/inclage当然,如果需要,所有这些都可以在项目文件中更改。要安装,只需解压缩包装,然后运行Qmake,Make and Sudo Make Install。注意:该项目是为UNIX配置的,需要更改Windows Builds。给我留言以获取更多信息。

相关内容

  • 没有找到相关文章

最新更新