剛開始接觸OpenCV,開始用的是1.0版本,支援VC6.0,如果想瞭解opencv1.0如何在VC6.0下配置,可以看一下我的另一篇文章----VC6.0下配置OpenCV1.0,都是自己一步一個腳印走過來的,絕對可靠!
opencv1.0似乎只能開啟avi格式的視頻檔案,而且對avi格式的視頻檔案也有嚴格的編碼要求,這可能是opencv1.0的一個小小的缺陷,呵呵……
在用VC6.0編譯執行opencv利用cvCreateFileCapture()開啟i視頻檔案的時候,語句如下;
CvCapture* capture =cvCreateFileCapture("2.avi"); debug時候可以看到 capture 傳回值一直是NULL ,運行時會一閃而過,無法播放視頻。在這裡我可以告訴你程式一般沒問題,主要原因是你的電腦裡面因為沒有相應的解碼器。所以無法識別AVI視頻!(你會說你的播放器為什麼可以播放,我可以問問你,你的播放器和你的電腦有個毛關係??你的播放器的解碼外掛程式在它自己的檔案裡,你能讓你的windows程式去尋找那些外掛程式嗎?)
解決方案:利用ffdshow 軟體下載安裝相應的解碼器。
FFDShow 下載與安裝:
ffdshow:
http://sourceforge.net/projects/ffdshow-tryout/files/latest/download
安裝指導:
1、安裝時候,一定要選上“VFW介面”和“VirtualDub”(如果使用VirtualDub來進行格式的轉換,要選擇VirtualDub)
2、安裝完成。進入開始->程式->ffdshow->ffdshow VFW設定,在Decoder選項卡下,選擇轉碼器,使各種視頻格式對應的解碼器沒有被Disable就可以了,之後確定就OK了。
如
到此,你的電腦裡面就有新的血液了……
現在在試一下,是不是問題迎刃而解了……
如果,還沒有解決,那就是你的視頻格式的問題,下載一個VirtualDub或者格式工廠進行格式轉換一下就好啦。
VirtualDub使用方法:
下載VitualDub, (百度去吧,太多了~~) 步驟:
a. File->Open Video File;
b. Video->Filters->Add->Convert format; 選擇4:2:0 Planar YCbCr (YV12)或者 32-Bit RGB。
c. Save as AVI. 儲存完畢。
格式工廠的話,中文的,那麼容易操作,我都不好意思說怎麼用~~~但是注意選擇好編碼格式,是Xvid 編碼~注意哦!
GOOD LUCK !!