-
檢查是否成功初始化:
camObj.isOpen() #True成功 False失敗,同理打開視頻
失敗可嘗試:camObj.open() -
讀取一幀圖片:
ret, frame = camObj.read()
返回值:
ret: 代表當前幀是否讀取成功
frame: 帶表當前幀數據,是一個多維數組,若讀取失敗則為None -
色彩空間的轉換:cv2.cvtColor( )
生活中大多數看到的彩色圖片都是RGB類型,但是在進行圖像處理時,需要用到灰度圖、二值圖、HSV、HSI等顏色制式
opencv中有多種色彩空間,包括 RGB、HSI、HSL、HSV、HSB、YCrCb、CIE XYZ、CIE Lab8種,使用中經常要遇到色彩空間的轉化,以便生成mask圖等操作。
常用兩種:
1-BGR和灰度圖的轉換使用 cv2.COLOR_BGR2GRAY
2-BGR和HSV的轉換使用 cv2.COLOR_BGR2HSV
gray = cv2.cvtColor(frame , cv2.COLOR_BGR2GRAY)
flags = [i for i in dir(cv2) if i.startswith('COLOR_')]
print(flags) #查看支持的所有轉換類型 -
將圖片沿X或者Y軸翻轉:參數0 垂直翻轉(Y軸),1水平(X軸),-1為水平加垂直翻轉(XY)
cv2.flip(frame,0) -
設置編碼格式、分辨率、錄制FPS、文件名等參數
fourcc = cv2.VideoWriter_fourcc(*'XVID') #使用XVID編碼器
videoWriterObj = cv2.VideoWriter(pathName, fourcc, 25.0, (640,480)) #四個參數:保存文件名、編碼器、幀率、視頻分辨率 -
保存視頻(一幀幀圖片)
第六步當中生成了一個videoWriterObj對象,該對象自己設置
創建一個VideoWrite的對象,確定輸出文件名,指定FourCC編碼,播放頻率和幀的大小,最后是isColor標簽True為彩色。
FourCC是一個4字節碼,用來確定視頻的編碼格式。
Fedora : DIVX , XVID , MJPG , X264 , WMV1 , WMV2
XVID是最好的,MJPG是高尺寸視頻,X264得到小尺寸視頻
Windows : DIVX
使用該對象來將一幀幀圖像保存到文件中去
videoWriterObj .write(frame) #寫入讀取的當前幀