我正在使用以下代码在MS VC ++ 2012中使用openCV3从USB网络摄像头捕获视频帧。但问题是,有时我能够以30 fps显示捕获的帧,但有时我会得到一个非常黑的帧低fps(或高延迟)。换句话说,该程序随机工作。你知道我怎么解决这个问题吗?我尝试了在stackoverflow或其他一些地方建议的不同解决方案,但没有一个解决了这个问题。
VideoCapture v(1);
v.set(CV_CAP_PROP_FRAME_WIDTH, 720);
v.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
if(!v.isOpened()){
cout << "Error opening video stream or file" << endl;
return;
}
Mat Image;
namedWindow("win",1);
while(1){
v >> Image;
imshow("win", Image);
}
答案 0 :(得分:1)
试试这个:
while(1){
v >> Image;
imshow("win", Image);
char c=waitKey(10);//add a 10ms delay per frame to sync with cam fps
if(c=='b')
{
break;//break when b is pressed
}
}