import cv2 vidcap = cv2.VideoCapture('005.avi') success,image = vidcap.read() count = 0 success = True while success: success,image = vidcap.read() cv2.imwrite("frame%d.jpg" % count, image) # save frame as JPEG file if cv2.waitKey(10) == 27: break count += 1
waitKey()函數詳解
1--waitKey()--這個函數是在一個給定的時間內(單位ms)等待用戶按鍵觸發;如果用戶沒有按下 鍵,則接續等待(循環)
2--如下所示: while(1){ if(waitKey(100)==27)break; } 在這個程序中,我們告訴OpenCv等待用戶觸發事件,等待時間為100ms,如果在這個時間段內, 用戶按下ESC(ASCII碼為27),則跳出循環,否則,不跳出循環
3--如果設置waitKey(0),則表示程序會無限制的等待用戶的按鍵事件
videoCapture.read() 函數,第一個返回值為是否成功獲取視頻幀,第二個返回值為返回的視頻幀:
success, frame = videoCapture.read()
cv2.VideoWriter(filename, fourcc, fps, framesize, isColor)–視頻寫入/出
使用這個函數可以創建一個用於寫出視頻文件的句柄,第一個參數為寫出的視頻文件的名字/路徑,第二個參數為寫出視頻的編碼格式,
第三個參數為寫出視頻的fps值,第四個參數為寫出視頻的畫面大小,最后一個參數為設置寫出視頻是否為彩色視頻,可以省略,默認為彩色。
參考:
https://blog.csdn.net/william_hehe/article/details/79584191
https://blog.csdn.net/farmwang/article/details/74170975