如果 cv2.waitKey(1) 有 2 个案例

if cv2.waitKey(1) with 2 cases

我正在使用

if cv2.waitKey(1) & 0xFF == ord('q'):

退出程序,但我想将输入分为两种情况:如果你按“q”你退出,否则,如果你按“d”做某事。 我试过使用 elif 但没有用,因为程序仍在等待“q”。


另一个问题是:如果我想在你不按任何按钮的情况下使用超时 cv2.waitKey(1) & 0xFF == ord('q'),如何我可以这样做吗?

伪代码*

if timeout:
   if cv2.waitKey(1) & 0xFF == ord('q'):
      break
else:
   print("no interaction")
   do something

有什么类型的变量(超时)可以做到这一点?

感谢您的帮助。

这会等待按键被按下并将其存储在key中,您可以在您的条件下使用按键代码,如果在 1000 毫秒内没有按键被按下(k 将为 -1)它将退出.

k = cv2.waitKey(1000)
if k == -1:
    cv2.destroyAllWindows()
elif k == ord('a'):
    print("a key")


cv2.waitKey(0)