本篇介紹如何用 Python 搭配 OpenCV 模組的 cv2.VideoCapture 讀取影片檔案並播放顯示影片串流的畫面。
使用範例
如果遇到 ImportError: No module named 'cv2'
這個錯誤訊息的話,請安裝 python 的 OpenCV 模組,參考這篇安裝吧!。
用 VideoCapture 來播放video影片跟播放camera攝影機串流影像是一樣的,只是將參數中的攝影機代號換成影片的檔案名稱,
在顯示 frame 影像時,如果影像播放的很快的話,可以藉由調整 cv2.waitKey()
的參數來控制 frame 與 frame 之前的延遲,
如果 cv2.waitKey()
參數調的太小,那麼影片就會播的很快,
反之 cv2.waitKey()
參數調的太大,那麼影片就會播的很慢,
正常情況下 25 ms(milliseconds) 會是剛剛好的預設值。
1 | #!/usr/bin/env python3 |
播放中的截圖如下所示:
原本影片是彩色影像的,我們透過cv2.cvtColor()
將影像從彩色轉成灰階再顯示出來。
下一篇教學是如何儲存寫入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/
其它相關文章推薦
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 圖片轉字元圖畫