如果我运行以下代码

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中何时释放密钥?

最佳答案

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



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

10-08 04:39