我使用: -如何從使用opencv和Python的用戶讀取「ctrl + q」輸入?
key=cv2.waitKey(1) #& 0xFF
if key== ord('q'):
....................
,但我需要從用戶輸入的是CTRL + Q
感謝
我使用: -如何從使用opencv和Python的用戶讀取「ctrl + q」輸入?
key=cv2.waitKey(1) #& 0xFF
if key== ord('q'):
....................
,但我需要從用戶輸入的是CTRL + Q
感謝
@WalidAhmed,Ctrl
+ Anykey
解釋爲單一鍵,如果你使用cv::waitKeyEx()
。在示例中,
std::cout << cv::waitKey() << std::endl;
std::cout << cv::waitKey() << std::endl;
給出227, 113
(Ctrl
代碼,q
代碼)無論是在組合並且如果它們分別按壓。但
std::cout << cv::waitKeyEx() << std::endl;
std::cout << cv::waitKeyEx() << std::endl;
產生65507, 113
時鍵結合的情況下,分別和65507, 262257
按壓。
對不起,對於C++代碼,我希望你可以簡單地用Python重現它。請注意,這種方法是敏感的鍵盤的語言佈局(即我的英文和俄文Q
鍵有Й
字符在俄羅斯佈局,使263882
代碼Ctrl
+ Й
組合)。我也在Ubuntu中測試過它。所以對於不同的操作系統,代碼可能會有所不同。
CTRL + Q被編碼爲在ASCII control key table17
。以下是一個示例代碼。
cv2.imshow('frame', frame)
key = cv2.waitKey(1)
if key == 17: # Ctrl+Q or ^Q
break
@WalidAhmed你有沒有試過我的答案?它已經測試並能夠解決您的問題。 – thewaywewere
openCV具有非常有限的用戶界面(更多用於測試而不是真正的應用程序代碼)。也許這是不可能的。 – Micka
請閱讀[「我應該怎麼做當有人回答我的問題?」](http://stackoverflow.com/help/someone-answers)。 – thewaywewere