2012-11-01 45 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版本進行更改。給我留言瞭解更多信息。