2010-12-11 42 views
2

我在Ubuntu下運行帶有網絡攝像頭的Beagleboard xM上的OpenCV。攝像頭運行良好,但只能在YUYV模式下運行。也就是說,使用jpeg壓縮的luvcview有許多幀是截斷的,幀顏色不正確等。但luvcview -f YuYV完美地工作。使用YUYV代替JPEG壓縮的OpenCV for ARM(Beagleboard)?

是否可以禁用OpenCV的jpeg壓縮?

我試過用make選項構建和安裝openCV:--without-jpeg,但需要4個小時才能完成make和make install,並且通常會在90%+完成時崩潰。

有沒有一種方法可以交叉編譯這個no-jpeg版本的OpenCV for ARM,或者使用預構建的安裝包禁用jpeg的方法?化妝期間

錯誤安裝:

[95%]建築CXX對象測試/ CV/CMakeFiles/opencv_test.dir/SRC/amoments.o 鏈接CXX可執行../../bin/opencv_test CMakeFiles /opencv_test.dir/src/highguitest.o:在功能`CV_HighGuiTest ::運行(INT)':

...等

../../lib/libopencv_features2d.so.2.2.0 :未定義參考cv::SIFT;:SIFT(double, bool bool, int, int, int, int)) ...等

collect2:LD返回1個退出狀態 化妝[2]:* [斌/ opencv_test]錯誤1個 化妝[1]:* [測試/ CV/CMakeFiles/opencv_test.dir /全部]錯誤2 化妝: * [全部]錯誤2 (回到bash)

+0

嘗試了大量不同的事情,許多嘗試重新編譯,最終編寫了一個算法,根據STDERR輸出的變化文件大小輸出到一個文件來丟棄錯誤幀。可怕的黑客,但它的工作。 – 2011-02-07 22:40:00

回答

2

我有同樣的問題。這可能有所幫助:http://tech.groups.yahoo.com/group/OpenCV/message/77273

您可以在modules/features2d/src/sift.cpp中啓用SIFT。您可以在文件中搜索#ifdef arm。例如://#define ARM_NO_SIFT

另外,如果您使用的是beagle,則需要使用-DWITH_JPEG = OFF選項運行cmake。

+0

謝謝阿隆!我再也不能在BeagleBoard上進行測試了,但是這看起來好像有用。它對你有用嗎? – 2011-04-20 02:27:09