视频捕获期间显示灰屏 - OpenCV
Gray screen being displayed during video capture - OpenCV
我正在尝试在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,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 如果不在窗口 10 中声明名为 openCV 的 openCV namedWindow,QT 图像显示将无法正常工作
- OpenCV QT,显示视频的帧(不使用while循环)
- 如何使用OpenCV同时显示"深度"和"颜色"视频图像
- 无法在 Opencv 中显示图像导致内存位置
- 有没有办法拿一个opencv显示窗口并将其保存到GUI窗口?
- openCV中的Absdiff可以编译,但显示黑色图像
- OpenCV版本显示错误
- C++/openCV - 为什么显示图像会产生 Linux 分割错误?(打开CV错误?
- OpenCV没有显示来自Macbook网络摄像头的视频
- 使用 opencv 显示视频
- OpenCV显示编码在I420中的avi文件
- 用于安卓人脸识别的 openCV 显示"mat not continuous"错误
- 使用OpenCV 2.4.1.显示视频
- 可能存在SDL_Net问题和使用 openCV 显示内存中的 YUV 相机帧
- 如何使用 OPENCV 显示我的代码中的图像
- 使用 OpenCV 显示图像,并在C++中的特定点上输入文本
- cvLoadImage() + cvShowImage()从openCV显示灰色框
- 使用opencv显示视频
- 如何在Win32 c++应用程序中将OpenCV显示窗口添加为另一个窗口的子窗口