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()