在显示图像时,经常使用cv.Waitkey()来进行交互。参考别人的代码,每个人在里面使用的数字都不一样。查找资料后得到了解答,所以做一个记录。
1.官网解释
def waitKey(delay=None): # real signature unknown; restored from __doc__
"""
waitKey([, delay]) -> retval
. @brief Waits for a pressed key.
.
. The function waitKey waits for a key event infinitely (when \f$\texttt{delay}\leq 0\f$ ) or for delay
. milliseconds, when it is positive. Since the OS has a minimum time between switching threads, the
. function will not wait exactly delay ms, it will wait at least delay ms, depending on what else is
. running on your computer at that time. It returns the code of the pressed key or -1 if no key was
. pressed before the specified time had elapsed.
但这个delay的时间是正数时,这个函数是在一个给定的delay时间内(单位ms)等待用户按键触发;如果用户没有按下键,则接续等待(循环)。
. @note
.
. The function only works if there is at least one HighGUI window created and the window is active.
. If there are several HighGUI windows, any of them can be active.
.
. @param delay Delay in milliseconds. 0 is the special value that means "forever".
如果设置waitKey(0),则表示程序会无限制的等待用户的按键事件
"""
2.一般运用方法:
- while(1){ if(waitKey(100)==27)break; }
在这个程序中,我们告诉OpenCv等待用户触发事件,等待时间为100ms,如果在这个时间段内, 用户按下ESC(ASCII码为27),则跳出循环,否则,则跳出循环
- while(1){if(waitkey(1000)==ord('q'))break;}
我们告诉OpenCv等待用户触发事件,等待时间为1000ms,如果在这个时间段内, 用户按下'q',则跳出循环,否则,则跳出循环