【发布时间】:2015-01-10 02:54:22
【问题描述】:
我正在使用 cmake 通过 opencv 构建我的项目。顶层目录下有两个子项目,A 和 B。 A 没有 opencv 功能,而 B 使用 VideoCapture 从网络摄像头获取图像。一开始没有问题。
但是,在我将 B 中的代码添加到 A 之后,B 仍然可以从网络摄像头捕获图像,但 A 不能做同样的事情,错误如下:
HIGHGUI ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
VIDIOC_STREAMON: Inappropriate ioctl for device
很奇怪,我发现VideoCapture无法在A中获取图像,代码如下
VideoCapture cam;
cam.open(0);
if(!cam.isOpened()){
cout << "Failed to open webcam" << endl;
return false;
}
Mat Image;
cam >> Image;
if(Image.empty())
cout<<"Image empty"<<endl;
“Image empty”总是在控制台中,这意味着它根本无法捕获图像!
我遵循了一些建议,例如安装“v4l2ucp”,但是“/usr/lib/”下没有名为“libv4l”的文件夹,所以LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so 不起作用。
如果有人可以帮助我解决项目 A 中的问题,我将不胜感激。
【问题讨论】:
标签: opencv cmake video-capture