import os
import cv2
from PIL import Image
def Vedio_to_JPG(mp4_path):
""" 将视频转换成图片
mp4_path: 视频路径 """
cap = cv2.VideoCapture(mp4_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('mv\\%d.jpg' % frame_count, frame, params)
cap.release()
print('image: ', frame_count)
def JPG_to_Video(pic_path, mp4_path, fps):
""" 将图片合成视频. mp4_path: 视频路径,fps: 帧率 """
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
images = os.listdir(pic_path)
images.sort(key=lambda x:int(x[:-4]))
im = Image.open(os.path.join(pic_path, images[0]))
# print(im.size)
vw = cv2.VideoWriter(mp4_path, fourcc, fps, im.size)
for picture in images:
img = os.path.join(pic_path, picture)
img = cv2.imread(img)
img = cv2.resize(img, im.size)
vw.write(img)
print('The video synthetic success!')
if __name__ == '__main__':
pic_path = '../img' # all img skeleton
mp4_path = '../img_fps_60.mp4'
# Vedio_to_JPG(sp) # 视频转图片
JPG_to_Video(pic_path, mp4_path, 60) # 图片转视频
opencv实现图片视频互转
最新推荐文章于 2024-06-06 16:10:19 发布