python将图片合成为视频

#coding:utf-8

import os
import cv2
import re

def get_images(path):
    file_list = []
    for root, dirs, files in os.walk(path):
        if not files:
            continue
        for file in files:
            if file.endswith('.jpg'):
                file_list.append(os.path.join(root, file))
                #file_list.append(file)
    return file_list

def key_sort(image_path):
    pattern = re.compile("\d+")
    image_name = os.path.basename(image_path)
    return int(pattern.findall(image_name)[0])

def main():
	#图片路径
    path = "./desktop/test"
	#将图片存入列表
    file_list = get_images(path)
	#按照图片名称排序
    file_list.sort(key=key_sort)
	#一秒25帧,代表1秒视频由25张图片组成
    fps = 25
	#视频分辨率
    img_size = (1920, 1080) 
	#保存视频的路径
    save_path = "./desktop/test.avi"
    fourcc = cv2.VideoWriter_fourcc('M','J','P','G')
    video_writer = cv2.VideoWriter(save_path, fourcc, fps, img_size)
    for file_name in file_list:
        print file_name
        img = cv2.imread(file_name)
        video_writer.write(img)

    video_writer.release()

if __name__ == "__main__":
    main()

 

Python中将批量图片转换成视频通常使用`moviepy`这个库来实现。`moviepy`是一个用于视频编辑的Python库,它能够读取、写入视频文件,并且可以对视频进行各种操作,比如剪辑、并、添加字幕等。以下是使用`moviepy`将一系列图片转换成视频的基本步骤: 1. 安装`moviepy`库。如果尚未安装,可以通过pip安装: ``` pip install moviepy ``` 2. 准备图片文件。确保所有图片都在同一个目录下,并且图片的命名顺序正确,如img1.png, img2.png, ..., imgN.png。 3. 编写Python脚本来创建视频。使用`moviepy.editor`中的`ImageSequenceClip`类来读取图片序列并创建视频。 下面是一个简单的示例代码,将同一文件夹下所有的PNG图片转换为一个视频文件: ```python from moviepy.editor import ImageSequenceClip # 图片所在的文件夹路径 image_folder = './images' # 图片文件的格式 image_ext = 'png' # 图片文件名的模式 image_files = [img for img in os.listdir(image_folder) if img.endswith(image_ext)] # 图片的完整路径 image_paths = [os.path.join(image_folder, img) for img in image_files] # 设置视频的帧率 fps = 24 # 创建视频剪辑对象 clip = ImageSequenceClip(image_paths, fps=fps) # 输出视频文件的路径 output_video = 'output_video.mp4' # 写入输出视频 clip.write_videofile(output_video, codec='libx264') ``` 在这个脚本中,首先通过`os.listdir()`函数获取指定文件夹下所有的图片文件名,然后使用`ImageSequenceClip`类将这些图片成为视频视频输出到`output_video.mp4`文件中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值