cv2.waitKey()
是 OpenCV 库中用于控制窗口等待键盘输入的函数。这个函数在图像显示和交互中非常重要,它允许程序暂停执行,直到用户按下键盘上的某个键。
函数原型
在 Python 中,使用 OpenCV 的 cv2
模块时,waitKey()
函数的原型如下:
ret = cv2.waitKey(delay)
参数说明
delay
:这是一个以毫秒为单位的参数,它指定了waitKey()
函数等待键盘输入的超时时间。如果在这个时间内没有按键被按下,函数将返回-1
。如果设置了delay
为0
,则函数会无限期地等待,直到有按键被按下。
返回值
waitKey()
函数的返回值是按键的 ASCII 码,如果超时时间到达且没有按键被按下,则返回 -1
。返回值可以用于判断用户按下了哪个键,这对于创建交互式应用程序非常有用。
使用场景
cv2.waitKey()
通常与 cv2.imshow()
函数一起使用,后者用于在窗口中显示图像。当你想要在显示图像的同时等待用户的交互时,可以使用 cv2.waitKey()
。例如,你可以在显示一个视频帧后调用 cv2.waitKey()
,以便在视频播放时暂停并等待用户指令。
示例
以下是一个使用 cv2.waitKey(0)
的简单示例,它在一个窗口中显示一张图像,并等待用户按下任意键后关闭窗口:
import cv2
# 读取图像
image = cv2.imread('path_to_image.jpg')
# 检查图像是否成功加载
if image is None:
print("Error: Image not found or cannot be opened.")
else:
# 创建一个名为 "Display window" 的窗口,并显示图像
cv2.namedWindow("Display window", cv2.WINDOW_AUTOSIZE)
cv2.imshow("Display window", image)
# 等待用户按下任意键
key = cv2.waitKey(0)
if key != -1:
print(f"User pressed key: {chr(key)}")
# 关闭窗口
cv2.destroyAllWindows()
在这个示例中,cv2.waitKey(0)
使得程序在显示图像的窗口保持打开状态,直到用户按下任意键。一旦按键被按下,程序将打印出按键的字符表示,并关闭所有 OpenCV 创建的窗口。
cv2.waitKey()
是一个非常有用的函数,它使得 OpenCV 应用程序能够更加灵活地响应用户的输入。