2016-05-28 21 views
2

私はOpenCVのに働いていると私は(cv2.waitKey()のデフォルト動作)押されない待機のための任意のキーにOpenCVのをしたいが、私が定義する特定のキーを待つ(および後続のアクションを行う)します。この問題のOpenCV:別のキーを待つ?

私の現在のソリューションは、次の再帰的な1である:

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

あなたが非再帰的なアプローチを試みることができる必要ありませんされている場合:私は、あまりにもこれを探していた

def is_pressed(key) 
    # if statement 

def opencv_wait(): 
    key = 0 

    while is_pressed(key) : 
     key = cv2.waitKey(0) 
関連する問題