openCV 影片分解及合成
- 2020 年 1 月 22 日
- 筆記
1. 影片分解
import cv2 # ************************** # 分解影片 cap=cv2.VideoCapture('1.mp4')#獲取一個影片cap isOpen=cap.isOpened()#判斷是否打開 fps=cap.get(cv2.CAP_PROP_FPS)#頻率,一秒多少張圖片 width=int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))#寬 height=int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))#高 count=cap.get(cv2.CAP_PROP_FRAME_COUNT) print('height,width,count',height,width,count) i=0 while(isOpen): if i==10: break else: i+=1 (flag,frame)=cap.read()#讀取每一張圖片 flag:是否讀取成功 frame:讀取的照片 fileName='image'+str(i)+'.jpg' if flag: cv2.imwrite('./img/'+fileName,frame) print('end!')
2. 打開攝影機獲取圖片
# 打開攝影機 cap=cv2.VideoCapture(0) #值為0 打開攝影機 isOpen=cap.isOpened() i=1 while isOpen: i+=1 (flag,frame)=cap.read()##讀取每一張圖片 flag:是否讀取成功 frame:讀取的照片 cv2.imshow(str(i),frame) if flag: cv2.imwrite('./img/'+str(i)+'.jpg',frame) # 釋放對象 if i == 20: break cap.release()
3. 圖片合成影片
import cv2 fps = 24 fourcc = cv2.VideoWriter_fourcc(*'MJPG') videoWriter = cv2.VideoWriter('test.avi', fourcc, fps, (1080,1920)) for i in range(1,1000): p2=i img12 = cv2.imread('./img/image1.jpg') # cv2.imshow('img', img12) # cv2.waitKey(1000/int(fps)) print(str(p2)) videoWriter.write(img12) videoWriter.release()