Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ cvQueryFrame()返回灰色帧_C++_Opencv_Video Capture - Fatal编程技术网

C++ cvQueryFrame()返回灰色帧

C++ cvQueryFrame()返回灰色帧,c++,opencv,video-capture,C++,Opencv,Video Capture,cvQueryFrame()返回灰色帧,除非我在cvQueryFrame(捕获)处放置断点。程序只需要点击一次断点,然后我就可以从相机中获得正确的帧。我尝试过延迟、虚拟帧以及两者的组合,但若并没有断点,它似乎无法工作 cvNamedWindow("video", CV_WINDOW_AUTOSIZE); CvCapture *capture = cvCaptureFromCAM(1); if (capture == NULL) { return -1; } Mat frame; fo

cvQueryFrame()返回灰色帧,除非我在
cvQueryFrame(捕获)
处放置断点。程序只需要点击一次断点,然后我就可以从相机中获得正确的帧。我尝试过延迟、虚拟帧以及两者的组合,但若并没有断点,它似乎无法工作

cvNamedWindow("video", CV_WINDOW_AUTOSIZE);
CvCapture *capture  = cvCaptureFromCAM(1);
if (capture == NULL)
{
    return -1;
}

Mat frame;
for(int i = 0;i<10;i++)
{
    frame = cvQueryFrame(capture);
}


while(1)
{
    try
    {
    frame = cvQueryFrame(capture);
    imshow("video", frame);
    char c = cvWaitKey(1);
    if(c == 33)
        break;
    }

    catch(Exception e)
    {
        break;
    }
}
cvReleaseCapture( &capture);
cvDestroyWindow( "video" );

return 0;
cvNamedWindow(“视频”,CV\u窗口\u自动调整大小);
CvCapture*capture=cvCaptureFromCAM(1);
如果(捕获==NULL)
{
返回-1;
}
垫架;

对于(int i=0;i您可以尝试将cvWaitKey值设置为5或10?相机需要时间来传送下一帧并绘制上一帧。使用waitKey允许openCV有时间将图像绘制到屏幕上。可能您现在正确地抓取了帧,但无法正确显示它们