1 前言
初学OpenCV的时候,会学到一个waitKey
函数,用来做图片显示延时。最近在做一个Qt&OpenCV的项目,需要在一个while循环中做程序暂停,于是就想到了waitKey函数,就直接简单粗暴用这个函数作为循环暂停的时间计时函数,但后面发现结果不对,经过一整天的debug才发现,这个waitKey并不能起到暂停的功能。仔细读了文档,才发现waitKey并不能单纯的作为时间暂停函数。
2 waitKey函数与Sleep函数
众所周知,使用OpenCV的imshow
函数显示图片,必须配合waitKey
函数使用,才能将图片显示在windows窗体上。否则,imshow
函数单独使用只能弹出空白窗体,而无法显示图片。
waitKey
的函数原型如下:
CV_EXPORTS_W int waitKey(int delay = 0);
官方文档介绍如下:
@brief Waits for a pressed key.
@param delay Delay in milliseconds. 0 is the special value that means “forever”.
即,通过一个毫秒为单位的整型参数或者按键事件来决定窗体图片的显示时间。那么,waitKey能否作为一个程序等待函数呢?
答案是 不能 。
waitKey
函数给人的感觉是能够执行程序暂停功能,但遗憾的是,该函数仅对GUI窗体有效,官方文档中有一句注意事项
@note
The function only works i