本篇介紹如何用 Python 搭配 OpenCV 模組的 cv2.VideoCapture 開啟攝影機並顯示攝影機串流的畫面。
使用範例
如果遇到 ImportError: No module named 'cv2'
這個錯誤訊息的話,請安裝 python 的 OpenCV 模組,參考這篇安裝吧!。
要擷取攝影機影像,需要先建立一個 VideoCapture,可以參考下列範例中的 cv2.VideoCapture(0)
,
cv2.VideoCapture 的參數代表攝影機裝置的代號(device index),如果有多台攝影機的話就可以從攝影機裝置的代號來指定,
但通常只有一台攝影機,所以這邊攝影機代號代號0,
之後使用 cap.isOpened()
來確認攝影機裝置有沒有開啟,之後在迴圈使用 cap.read()
每次從攝影機讀取一張影像,
來作進一步的影像處理,這邊的例子簡單地使用 cv2.cvtColor()
的將影像從彩色轉成灰階,最後使用 cv2.imshow()
將影像顯示出來,
並且在迴圈內使用 cv2.waitKey(1)
等待按鍵事件發生,如果按下 q 鍵的話則 break 離開這個迴圈。
最後別忘了要使用 release()
來釋放該攝影機裝置。
1 | #!/usr/bin/env python3 |
下一篇教學是如何播放video影片檔案。
其他參考
OpenCV: Getting Started with Videos
https://docs.opencv.org/master/dd/d43/tutorial_py_video_display.html
OpenCV 擷取網路攝影機串流影像,處理並寫入影片檔案教學 - G. T. Wang
https://blog.gtwang.org/programming/opencv-webcam-video-capture-and-file-write-tutorial/
其它相關文章推薦
C++ OpenCV 顯示camera攝影機串流影像
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 圖片轉字元圖畫