2012-11-01 30 views

回答

1

嗯,我在这里回答我自己的问题。
自从一年以来,我一直在使用OpenCV,并且很多时候我不得不编写代码来打开视频文件并对其进行流式处理。最近,我一直在使用Qt来提供高级gui,并且我想出了一个解决方案,在使用OpenGL的Qt GUI上显示IplImages(我花了很多时间努力,但终于成功了)。虽然,OpenCV可以用Qt highgui支持来构建,但我很想学习一些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(有更好的支持)安装。 该库基于该体系结构安装在/ usr/lib或/ usr/lib64中。 将包含文件安装到/ usr/local/include中 当然,如果需要,所有这些都可以在项目文件中更改。 要安装,只需解压缩包,然后运行qmake,make和sudo make install。 注意:该项目已针对unix进行配置,并且需要针对Windows版本进行更改。给我留言了解更多信息。