Python+cv2 視頻轉(zhuǎn)換為圖片 與 圖片轉(zhuǎn)換為視頻

import os
import cv2
from PIL import Image

def unlock_movie(path):
""" 將視頻轉(zhuǎn)換成圖片
    path: 視頻路徑 """
  cap = cv2.VideoCapture(path)
  suc = cap.isOpened()  # 是否成功打開
  frame_count = 0
  while suc:
      frame_count += 1
      suc, frame = cap.read()
      params = []
      params.append(2)  # params.append(1)
      cv2.imwrite('frames\\%d.jpg' % frame_count, frame, params)

  cap.release()
  print('unlock movie: ', frame_count)


def  jpg_to_video(path, fps):
  """ 將圖片合成視頻. path: 視頻路徑,fps: 幀率 """
  fourcc = cv2.VideoWriter_fourcc(*"MJPG")
  images = os.listdir('frames')#os.listdir()方法用于返回指定的文件夾包含的文件或文件夾的名字的列表
  image = Image.open('frames/' + images[0])
  vw = cv2.VideoWriter(path, fourcc, fps, image.size)

os.chdir('frames')
for i in range(len(images)):
    # Image.open(str(image)+'.jpg').convert("RGB").save(str(image)+'.jpg')
    jpgfile = str(i + 1) + '.jpg'
    try:
        new_frame = cv2.imread(jpgfile)
        vw.write(new_frame)
    except Exception as exc:
        print(jpgfile, exc)
vw.release()
print(path, 'Synthetic success!')


if __name__ == '__main__':
  PATH_TO_MOVIES = os.path.join('test_movies', 'beautiful_mind2.mp4')
  PATH_TO_OUTCOME = os.path.join('detection_movies', 'beautiful_mind2_detection_1.avi')
  unlock_movie(PATH_TO_MOVIES)  # 視頻轉(zhuǎn)圖片
  jpg_to_video(PATH_TO_OUTCOME, 24)  # 圖片轉(zhuǎn)視頻
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容