OpenCV VideoCapture 有时会返回空白帧

Posted

技术标签:

【中文标题】OpenCV VideoCapture 有时会返回空白帧【英文标题】:OpenCV VideoCaptures sometimes returns blank frames 【发布时间】:2016-02-23 19:07:35 【问题描述】:

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

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】:

试试这个:

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
       

【讨论】:

以上是关于OpenCV VideoCapture 有时会返回空白帧的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV VideoCapture解析

Opencv VideoCapture 在 Heroku 上总是返回 false

OpenCV VideoCapture 在 Raspberry Pi 2 上总是失败

从网络摄像头捕获帧,它在 opencv cv2.VideoCapture() 中仅返回 1 帧

2017.3.29 opencv学习笔记

python之OpenCv---抓取摄像头视频图像