gpt4 book ai didi

c++ - 视频捕获期间显示灰色屏幕 - OpenCV

转载 作者:行者123 更新时间:2023-11-28 07:11:16 26 4
gpt4 key购买 nike

我正在尝试运行一个程序,用于从 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);
}

最佳答案

您的代码在我的笔记本电脑上运行良好。确保您的相机设备没有被其他应用程序阻止,或者您可以尝试注释掉 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 指针。”

关于c++ - 视频捕获期间显示灰色屏幕 - OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20931210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com