OpenCV VideoCaptures有时会返回空白帧

时间:2016-02-23 19:07:35

标签: c++ opencv video capture

我正在使用以下代码在MS VC ++ 2012中使用openCV3从USB网络摄像头捕获视频帧。但问题是,有时我能够以30 fps显示捕获的帧,但有时我会得到一个非常黑的帧低fps(或高延迟)。换句话说,该程序随机工作。你知道我怎么解决这个问题吗?我尝试了在stackoverflow或其他一些地方建议的不同解决方案,但没有一个解决了这个问题。

VideoCapture v(1);
v.set(CV_CAP_PROP_FRAME_WIDTH, 720);
v.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
if(!v.isOpened()){
   cout << "Error opening video stream or file" << endl;
   return;
}

Mat Image;
namedWindow("win",1);

while(1){
    v >> Image;
    imshow("win", Image);
}

1 个答案:

答案 0 :(得分:1)

试试这个:

while(1){
    v >> Image;
    imshow("win", Image);
    char c=waitKey(10);//add a 10ms delay per frame to sync with cam fps
    if(c=='b')
       {
            break;//break when b is pressed
       }
}