如何检测何时在OpenCV中释放密钥?

问题描述 投票:0回答:1

如果我运行以下代码

import cv2

cv2.namedWindow('Window')
while True:
    key = cv2.waitKey(50)
    print(key)
    if key == ord('q'):
        break
print('quit')

并按i(键代码105一会儿,我得到输出

-1
-1
-1
-1
-1
-1
105
-1
-1
-1
-1
-1
-1
-1
-1
-1
105
105
105
105
105
105
105
105
105
105
-1
-1

105的首次出现是我按下i的时间。即使按住i,我仍然连续九次获得-1。然后我不断得到105直到释放i

[我怎么知道在第一次出现105之后,在两种情况下都i时是否仍按下-1或将其释放?或者换句话说,您如何检测何时在OpenCV中释放密钥?

python opencv keyboard-events
1个回答
0
投票

OpenCV具有非常基本的界面属性。正如the documentation所提到的,它不谈论已发布的事件:

函数waitKey无限等待键事件(当𝚍𝚎𝚕𝚊𝚢≤0)或延迟毫秒(当它为正时)。以来操作系统在切换线程之间的时间最短,该功能将不等待确切的延迟毫秒,它将至少等待延迟毫秒,具体取决于当时您的计算机上还运行着什么。它返回按键的代码;如果在按键之前没有按键,则返回-1指定的时间过去了。

在您的情况下,如果您仅使用按下事件,它将正常工作。不幸的是,您不能使用按下的事件来获得释放事件。您可以使用MouseEvent types代替keyEvent来发布事件,也可以使用注释中提到的Micka,最好使用基于ui的程序。

© www.soinside.com 2019 - 2024. All rights reserved.