Ubuntu11.10以上OpenCV2.3.1库无法打开摄像头的解决方案

 opencv2.3.1和ubuntu11.10都是比较新的东西,笔者花了半天的时间来研究其结合,其间难免参考到包含CSDN在内的一些国内程序员写的东西,但是几经辗转,都不能很好的解决问题。在运行算法的时候,总是有“capture device cannot open”的错误。
  整个安装过程全是按照某些博客中所说的“正确步骤”来做的,但是为什么到最后却有错误呢?笔者试图通过eclipse的debug来跟踪问题的根源。最终发现,在linux kernel-2.6.38 or later version中,文件include/videodev.h已经不能使用。这就使得opencv目录下的cap_libv4l.cpp source文件无法生效。所以正确的解决方法应该是寻找一个videodev的替代产品:
  如下操作:
1.  apt-get install libv4l-dev 
 这样,/usr/include目录下会出现一个libv4l1-videodev.h的头文件
2. 修改opencv/modules/highgui/cap_v4l.cpp中217行:
#include
为: #include
3.修改cap_libv4l.cpp中227行:
#if !defined WIN32 && defined HAVE_CAMV4L && defined HAVE_CAMV4L2 
为:
#if !defined WIN32 && defined HAVE_CAMV4L
2
244行: #include nux/videodev.h>
为:#include
至此,修改完成,重新编译即可。

运行算法,camera open success.

  此方案仅在Ubuntu11.10上测试,对于较高的版本请大家自行验证。


你可能感兴趣的:(图像处理技术)