waitKey(30)在OpenCV中的含义是什么?

时间:2012-09-17 01:20:27

标签: c++ opencv

  

可能重复:
  OpenCV - cvWaitKey( )

我想过滤视频帧。

for(;;)
{
cap.read( frame);
medianBlur(frame,framedst,5);
imshow("frame",frame);
imshow("framedst",framedst);    
if( waitKey (30) >= 0) break;
}

waitKey(30)是什么意思?因为如果我注释掉if( waitKey (30) >= 0) break;行,则上述代码无效!

1 个答案:

答案 0 :(得分:22)

函数waitKey()等待“延迟”(此处为30毫秒)的键事件。正如OpenCV documentation中所解释的,HighGui(imshow()是HighGui的函数)需要定期调用waitKey,以便处理其事件循环。

也就是说,如果你不调用waitKey,HighGui就无法处理重绘,调整大小,输入事件等窗口事件。所以只需调用它,即使延迟1ms:)