背景:
近期想在嵌入式平台上開發QT+Opencv,無料PC機上編寫的OpenCV程序老是打不開視頻。
開始提示:OpenCV Error: Bad argument (Array should be CvMat or IplImage) in cvGetSize
可是沒實用錯。考慮到可能沒有打開視頻,以作為cvGetSize的參數。
曾經程序執行沒有問題。近期電腦進行了一些FFMPEG/ZLIB等的交叉編譯。就不能執行了。
解決方法:
網上搜索,發現是由於ffmpeg沒有編譯到opencv里。於是參照http://blog.csdn.net/tinyway/article/details/9088985進行又一次編譯,攻克了問題。
總結例如以下:
PC:Ubuntu12.04LTS OpenCV2.4.3
OpenCV成功編譯安裝。進而編譯算法,也成功編譯生成二進制文件,可是執行時候cvCreateFileCapture無法讀入視頻。終於原因在於ffmpeg沒有配置好。刪除OpenCV和ffmpeg又一次編譯ffmpeg和OpenCV后。視頻讀入成功。
ffmpeg安裝
源代碼下載 : svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg(假設沒有安裝svn。依據提示安裝)
安 裝: yasm:sudo apt-get install yasm
文件配置 : ./configure --enable-shared --enable-gpl --enable-swscale
編譯安裝 : make ;sudo make install
然后進行OpenCV安裝,安裝與使用具體過程參見:http://blog.csdn.net/guo8113/article/details/29211041
以下也給出了簡要過程:
OpenCV2.4.4的安裝
tar -jxvf OpenCV-2.4.3.tar.bz2
cd OpenCV-2.4.3/
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_PYTHON_SUPPORT=ON ..
(這一步,就在這一步之后,會顯示是否成功配置ffmpeg,若出現例如以下,則表示配置成功,相反。之前的失敗是由於配置都為0(或者false),詳細例如以下:
FFMPEG:1
codec: 1
format: 1
util: 1
swscale:1
gentoo-style: 1
)$make
$sudo make install
$sudo ldconfig
