2010-12-11 35 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