OpenCV: imshow后不加waitkey无法显示视频

时间:2023-03-09 01:52:54
OpenCV: imshow后不加waitkey无法显示视频

OpenCV显示视频帧时出现一个问题,就是imshow之后若是不加waitkey则无法显示,找了很久也没找到原因。

只是发现也有人发现这个问题:

cvWaitKey(x) / cv::waitKey(x) does two things:

  1. It waits for x milliseconds for a key press. If a key was pressed during that time, it returns the key's ASCII code. Otherwise, it returns -1.
  2. It handles any windowing events, such as creating windows with cv::namedWindow(), or showing images with cv::imshow().

A common mistake for opencv newcomers is to call cv::imshow() in a loop through video frames, without following up each draw with cv::waitKey(30). In this case, nothing appears on screen, because highgui is never given time to process the draw requests from cv::imshow().

所以imshow之后还是加上waitkey语句吧,为节约时间就设置为最小值1好了。

cv::waitkey(1);