opencv实现图片视频互转

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)  # 图片转视频
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值