我一直试图让openCV从我电脑的网络摄像头中读取图像。以下代码成功打开网络摄像头(绿灯亮起)。但是,尝试抓取帧并因此读取帧失败。我在这里不知所措。有人可以帮忙吗?
非常感谢, 希拉里
P.S。我在MacBook Pro上运行Mac OS X 10.9。我的opencv版本是2.4.6.1
以下是代码:
#include "opencv.hpp"
using namespace cv;
int main(int, char**) {
VideoCapture cap = VideoCapture(0);
if(!cap.isOpened()){
printf("failed to open camera\n");
return -1;
}
namedWindow("edges",1);
for(;;){
if(waitKey(50) >= 0 ) break;
if(!cap.grab()){
printf("failed to grab from camera\n");
}
}
return 0;
}
答案 0 :(得分:0)
您忘记在循环中阅读新框架并显示它们!有:
for(;;){
if(waitKey(50) >= 0 ) break;
Mat frame;
if(!cap.grab()){
printf("failed to grab from camera\n");
break;
}
cap >> frame;
if(frame.empty()){
printf("failed to grab from camera\n");
break;
}
imshow("edges", frame);
}