cvQueryFrame()返回灰色框架除非我在cvQueryFrame(capture)
放置一个断点。程序只需要一次点击断点然后我从相机中获得适当的帧。我已经尝试过延迟,虚拟帧,两者的组合,但它似乎没有断点就无法工作。
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;
答案 0 :(得分:0)
您可以尝试将cvWaitKey值设置为5或10吗?相机需要时间来传送下一帧并绘制前一帧。使用waitKey可以让openCV有时间将图像绘制到屏幕上。您现在可能正确抓取框架,但无法正确显示它们。