视频捕获期间显示灰屏 - OpenCV

Posted

技术标签:

【中文标题】视频捕获期间显示灰屏 - OpenCV【英文标题】:Gray screen being displayed during video capture - OpenCV 【发布时间】:2014-01-05 07:29:15 【问题描述】:

我正在尝试在 OpenCV 中运行用于从网络摄像头捕获视频的程序。每次我运行程序时,都会显示一个灰色屏幕。我最初尝试使用 CvCapture 函数在 C API 中编程,它工作得非常好。但是现在在 C++ API 中,当我尝试运行以下使用 VideoCapture 的代码时,会显示灰屏。

我该如何解决这个问题?请帮忙。我的 OpenCV 版本是 2.4.6,我在 MS Visual Studio 2010 Professional 中运行代码。

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;

int main(int argc, char** argv)

    VideoCapture capture(0);
    Mat frame;

    if( !capture.isOpened() )
        throw "Error when reading steam_avi";

    namedWindow( "w", 1);
    for( ; ; )
    
        capture.read(frame);
        if(frame.empty())
            break;
        imshow("w", frame);
        waitKey(1); 
    

    waitKey(0);  

【问题讨论】:

有人知道这个吗?我得到了同样的东西。 【参考方案1】:

您的代码在我的笔记本电脑上运行良好。确保您的相机设备没有被其他应用程序阻止,或者您可以尝试注释掉 namedWindow 调用(但这应该没有问题),实际上您可以使用以下循环从相机中获取视频帧:

VideoCapture capture(0);
Mat frame;

if( !capture.isOpened() )
    throw "Error when reading steam_avi";

namedWindow( "w", 1);
while(capture.read(frame))

    imshow("w", frame);
    waitKey(1); 


waitKey(0);

根据文档:“如果没有抓取任何帧(相机已断开连接,或者视频文件中没有更多帧),则方法返回 false 并且函数返回 NULL 指针。”

【讨论】:

以上是关于视频捕获期间显示灰屏 - OpenCV的主要内容,如果未能解决你的问题,请参考以下文章

Dell S2419HM 显示器灰屏 All In One

发布模式下浏览量显示灰屏

视频捕捉人脸检测-安卓

解决配置Ubuntu中vnc远程显示灰屏

iOS:在相机预览期间捕获图像而不采取行动

VNC连接灰屏是啥情况