1、VideoCapture()括號中寫視頻文件的名字,在播放每一幀的時候,使用cv2.waitKey()設置適當的持續時間,太低會播放的很快,太高會很慢,通常情況下25毫秒就行了。
2、獲取相機/視頻的各種屬性–常見函數
cv2.VideoCapture.get(propId) 訪問視頻的某些功能,其中propId是一個從0到18的數字,每個數字表示視頻的屬性(Property Identifier)。
retval = cv2.VideoCapture.set(propId,value)
其中一些值可以使用 cap.set(propId,value) 進行修改,value是修改后的值。
例如:通過cap.get(3)和cap.get(4)來檢查幀的寬度和高度,默認的值是640x480。現修改為320x240,使用ret = cap.set(3, 320)和ret = cap.set(4, 240)。
retval,image= cv2.VideoCapture.read([,image]) 抓取,解碼並返回下一個視頻幀。返回值為true表明抓取成功。該函數是組合了grab()和retrieve(),這是最方便的方法。如果沒有幀,該函數返回false,並輸出空圖像。
retval, image = cv2.VideoCapture.retrieve([, image[, flag]]) 解碼並返回抓取的視頻幀
retval = cv2.VideoCapture.grab() 從視頻文件或相機中抓取下一幀。true為抓取成功。該函數主要用於多攝像頭時。
cv2.VideoCapture.release() 關閉視頻文件或相機設備。
retval = cv2.VideoCapture.get(propId) #打開視頻文件或者相機設備進行視頻捕獲。 propId 常見取值如下: """ cv2.CAP_PROP_POS_MSEC: 視頻文件的當前位置(ms) cv2.CAP_PROP_POS_FRAMES: 從0開始索引幀,幀位置。 cv2.CAP_PROP_POS_AVI_RATIO:視頻文件的相對位置(0表示開始,1表示結束) cv2.CAP_PROP_FRAME_WIDTH: 視頻流的幀寬度。 cv2.CAP_PROP_FRAME_HEIGHT: 視頻流的幀高度。 cv2.CAP_PROP_FPS: 幀率 cv2.CAP_PROP_FOURCC: 編解碼器四字符代碼 cv2.CAP_PROP_FRAME_COUNT: 視頻文件的幀數 cv2.CAP_PROP_FORMAT: retrieve()返回的Mat對象的格式。 cv2.CAP_PROP_MODE: 后端專用的值,指示當前捕獲模式 cv2.CAP_PROP_BRIGHTNESS:圖像的亮度,僅適用於支持的相機 cv2.CAP_PROP_CONTRAST: 圖像對比度,僅適用於相機 cv2.CAP_PROP_SATURATION:圖像飽和度,僅適用於相機 cv2.CAP_PROP_HUE: 圖像色調,僅適用於相機 cv2.CAP_PROP_GAIN: 圖像增益,僅適用於支持的相機 cv2.CAP_PROP_EXPOSURE: 曝光,僅適用於支持的相機 cv2.CAP_PROP_CONVERT_RGB:布爾標志,指示是否應將圖像轉換為RGB。 """
import cv2 cap = cv2.VideoCapture('hhh.mp4') while cap.isOpened(): ret, frame=cap.read() cv2.imshow('frame', frame) if cv2.waitKey(25) & 0xFF == ord('q'): break cap.release() cv2.destroyAllWindows()