📜  Python OpenCV – waitKeyEx()函数(1)

📅  最后修改于: 2023-12-03 15:34:03.015000             🧑  作者: Mango

Python OpenCV – waitKeyEx()函数

简介

在OpenCV中,waitKeyEx()函数能够实现暂停程序的效果,当用户按下某个键盘按键时,程序会恢复执行。同时,waitKeyEx()函数还可以检测是否有其他事件发生,比如鼠标点击事件等。该函数需要接收一个整数参数,代表等待时间(毫秒)。如果参数为0,该函数将持续等待用户输入,直到用户按下一个键盘按键或者鼠标点击事件发生。如果参数大于0,函数会在等待时间到达后恢复执行。

使用示例

下面是一个简单的示例程序,演示了waitKeyEx()函数的基本用法。

import cv2

# 读取图像
img = cv2.imread('test.jpg')

# 显示图像
cv2.imshow('image', img)

# 等待用户输入
key = cv2.waitKeyEx(0)

# 判断键盘输入
if key == ord('q'):
    cv2.destroyAllWindows()

在上面的代码中,我们首先读取一张图片,然后使用imshow()函数将其显示出来。接下来,我们调用waitKeyEx()函数等待用户输入。当用户按下某个键盘按键时,该函数会返回对应的键码。在本例中,我们将等待时间设置为0,这意味着程序将一直等待用户输入直到有按键或鼠标点击事件发生。最后,我们判断用户输入,如果按下的是字母q,则关闭图像窗口。

其他参数

除了等待时间参数外,waitKeyEx()函数还可以接收其他参数,用于检测特定的事件发生。下面是一个示例程序,演示了如何检测鼠标点击事件。

import cv2

# 定义鼠标回调函数
def onMouse(event, x, y, flags, param):
    if event == cv2.EVENT_LBUTTONDOWN:
        print('Left mouse button clicked!')

# 读取图像
img = cv2.imread('test.jpg')

# 显示图像
cv2.imshow('image', img)

# 设置鼠标回调函数
cv2.setMouseCallback('image', onMouse)

# 等待用户输入
key = cv2.waitKeyEx(0)

# 判断键盘输入
if key == ord('q'):
    cv2.destroyAllWindows()

在上面的代码中,我们首先定义了一个鼠标回调函数onMouse(),该函数用于检测鼠标点击事件。接着,读取一张图片,并调用setMouseCallback()函数将鼠标回调函数与图像窗口绑定。最后,我们等待用户输入,并判断是否按下字母q。

总结

waitKeyEx()函数是OpenCV中一个非常有用的函数,它可以暂停程序等待用户输入,并且可以检测特定的事件。如果您正在进行图像处理的开发工作,不妨尝试使用这个函数。