0

我一直在尝试让 openCV 从我电脑的网络摄像头中读取图像。下面的代码成功打开网络摄像头(绿灯亮)。但是,尝试抓取帧并因此读取帧失败。我在这里不知所措。任何人都可以帮忙吗?

非常感谢,希拉里

PS 我在 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;
}
4

1 回答 1

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);
} 
于 2013-11-11T05:07:52.033 回答