opencv可以讀取圖像,自然也可以讀取視頻,因爲視頻就是圖像在高速切換下的效果,所以我們可以一幀一幀去讀取視頻
import cv2
import numpy as np
import matplotlib as plt
video = cv2.VideoCapture('test.mp4') #讀入視頻流
# 檢查是否讀入正確
if video.isOpened():
open, frame = video.read() # read()方法一幀一幀地讀取視頻
# 這裏我們用讀取一幀來判斷.open表示是否讀入正確,是一個bool值
# frame 表示讀取進來的第一幀的參數
else:
open = false
while open:
ret, frame = video.read() # 利用循環來讀取每一幀的結果
if frame is None:
break
if ret == True:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 用於將每一幀的彩色圖像變成灰度圖像
cv2.imshow('result', gray)
# 下面表示展示圖片,一幀一幀展示, 後邊的27表示ESC退出鍵,我們可以按esc退出播放
if cv2.waitKey(10) & 0xff == 27:
break
video.release()
cv2.destroyAllWindows()
當然我們也可以把視頻的每一幀去保存起來,利用imwrite()函數來讀取
可以看到圖片一幀一幀顯示了出來, 就像是視頻一樣我們可以修改waitKey後邊的數字,來調整視頻的快慢