2016-05-28 39 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)