OpenCV:等待不同的密钥?

时间:2016-05-28 12:39:28

标签: python python-2.7 opencv wait keypress

我正在使用OpenCV,我希望OpenCV 等待按下任何键(cv2.waitKey()的默认行为),但等待特定我定义的键(并执行后续操作)。

我目前解决此问题的方法是以下递归方法:

def opencv_wait():
    # wait for keypress; capture it
    k = cv2.waitKey(0)

    if k == 27:  # this should be ESC
        return   # e.g. end the program
    elif k == some_key:      # some other keys...
        do_some_function()   # ...and actions to do after key is pressed
    else:
        opencv_wait()        # recursively call opencv_wait() for looping

我的问题是:这个解决方案是让OpenCV等待不同密钥的便捷方式吗?

是否有更快/更好的方法来实现我想要做的事情?

基本上我希望OpenCV等待(尽可能少浪费资源)无限长,直到按下特定的键才能触发后续操作。

1 个答案:

答案 0 :(得分:0)

如果不是必要的话,你可以尝试非递归方法:

def is_pressed(key)
    # if statement

def opencv_wait():
    key = 0

    while is_pressed(key) :
        key = cv2.waitKey(0)