我正在尝试使用OpenCV从USB摄像头捕获视频。
#include <highgui.h>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
VideoCapture cap (-1);
if (!cap.isOpened())
cout << "Cam initialize failed";
else cout << "Cam initialized";
return 0;
}它无法初始化摄像头。cap.isOpened()返回零。
同样的程序,使用相同版本的OpenCV和相同的USB摄像头,在我朋友的机器上正常运行。我正在运行Fedora 16。摄像头在另一个应用程序(例如,Cheese)中工作正常。
我在Google和Stack Overflow上做了一些搜索。但是没有什么有用的帮助。有什么想法吗?
发布于 2014-03-16 03:41:50
尝试以root身份运行您的程序。你可能没有权限,而且opencv不会告诉你这是否是cap.isOpened()失败的原因。
发布于 2012-10-17 01:18:02
manual here表示VideoCapture::VideoCapture(int device)接受
设备:打开的视频采集设备的id (即摄像头索引)。如果只有一个摄像头连接,只需传入0即可。
我认为如果您的系统中有一个摄像头,则应该将-1更改为0。
https://stackoverflow.com/questions/12899039
复制相似问题