本篇介紹如何在 Python OpenCV 中使用 cv2.waitKey 等待按鍵事件,進一步的處理鍵盤事件,例如像離開程式這樣的事件處理。
使用範例
如果遇到 ImportError: No module named 'cv2'
這個錯誤訊息的話,請安裝 python 的 OpenCV 模組,參考這篇安裝吧!。
在影像處理中經常需要取得鍵盤輸入事件,之後在更進一步地去處理這些按鍵對應的程式邏輯,
在 python opencv 中 要補捉鍵盤事件的話可以使用 cv2.waitKey()
,它會在給定的時間內監聽鍵盤事件,
給訂的時間到了 cv2.waitKey()
回傳按下按鍵的數字,沒有按鍵按下的話會回傳-1,
那我們以播放影片為例,對播放影片功能不熟悉的可以回去看我之前的文章,
這邊以使用者會按下 Ese 鍵與 Enter 鍵的情況為例,
1 | #!/usr/bin/env python3 |
另外其他常見的按鍵有下列,按鍵值為我在Ubuntu下測試的結果:Esc
: 27Enter
: 13Up
: 82Down
: 84Left
: 81Right
: 83Space
: 32Backspace
: 8Delete
: 255Home
: 80End
: 87PageUp
: 85PageDown
: 86PrintScreen
: 在 ubuntu 中會被系統攔截去
程式啟動後可以在影片播放中按下 Enter
鍵,就會暫停播放,再按一次 Enter
鍵就會繼續播放,
下圖就是暫停播放的樣子,
好啦!這篇教學就到這篇囉~
下一篇教學是如何顯示camera攝影機串流影像。
參考
键盘事件监听 - Python-OpenCV基础入门
http://www.1zlab.com/wiki/python-opencv-tutorial/opencv-waitkey-keyboards/
python - Using other keys for the waitKey() function of opencv - Stack Overflow
https://stackoverflow.com/questions/14494101/using-other-keys-for-the-waitkey-function-of-opencv
windows - How to detect ESCape keypress in Python? - Stack Overflow
https://stackoverflow.com/questions/5137238/how-to-detect-escape-keypress-in-python
其它相關文章推薦
Python OpenCV 彩色轉灰階(RGB/BGR to GRAY)
Python OpenCV 彩色轉HSV(RGB/BGR to HSV)
Python OpenCV 彩色轉YCbCr(RGB/BGR to YCbCr)
Python OpenCV 灰階轉彩色(Gray to RGB/BGR)
Python OpenCV 影像二值化 Image Thresholding
Python OpenCV 影像平滑模糊化 blur
Python OpenCV 影像邊緣偵測 Canny Edge Detection
Python OpenCV 垂直vconcat 和水平hconcat 影像拼接
Python OpenCV resize 圖片縮放
Python 新手入門教學懶人包
小專案 Python OpenCV 圖片轉字元圖畫