2016-05-28 2 views
2

Я работаю с OpenCV, и я хочу, чтобы OpenCV не ждут любой ключ нажат (поведение по умолчанию cv2.waitKey()), но ждать конкретных ключей, которые я определяю (и делать последующие действия).OpenCV: ждать разных ключей?

Мое текущее решение этой проблемы заключается в следующем рекурсивным:

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) 
Смежные вопросы