利用Python将多张图片合成视频的实现

Miles
Miles
发布时间:2026-10-14| 4人浏览过
原创

本文介绍如何使用Python和OpenCV库将多张图片序列合成为视频文件。核心步骤包括读取图片、创建VideoWriter对象并写入帧。重点解决中文路径无法读取及路径格式错误等常见问题,提供完整代码示例与参数说明,适用于制作演示动画或视频序列处理。

Python图片合成视频实现概述

近期需要制作一个量子隧穿现象的演示动画,参考了CSDN上多位技术博主的文章,但实际执行过程中耗时近半天才完成。为了记录开发过程中遇到的障碍,并保存这段具有复用价值的代码(未来可能再次遇到类似需求),特此整理相关经验。

核心代码与算法逻辑

首先展示核心实现代码:


import numpy as np
import cv2
#读取一张图片
size = (432,288)
print(size)
#完成写入对象的创建,第一个参数是合成之后的视频的名称,第二个参数是可以使用的编码器,第三个参数是帧率即每秒钟展示多少张图片,第四个参数是图片大小信息
videowrite = cv2.VideoWriter(r'F:\test.mp4',-1,20,size)#20是帧数,size是图片尺寸
img_array=[]
for filename in [r'F:\Picture\{0}.png'.format(i) for i in range(600)]:
 img = cv2.imread(filename)
 if img is None:
  print(filename + " is error!")
  continue
 img_array.append(img)
for i in range(600):
 videowrite.write(img_array[i])
print('end!')

尽管不同实现者的具体代码可能存在差异,但算法的核心逻辑是一致的。

具体步骤如下: 1. 使用cv2.imread()函数读取图片文件。 2. 利用cv2.VideoWriter()创建一个视频写入对象。 3. 调用该对象的write方法,将处理好的图片逐帧写入,从而生成最终的视频文件。

常见路径问题与解决方案

在实现过程中,有几个关键的技术陷阱需要注意:

1. 图片尺寸必须统一。


size = (432,288)#这边是图片的尺寸,图片的尺寸得是一样的,不一样的话有个博主编了一个resize函数可以去参考一下

2. cv2.imread函数无法正确读取包含中文字符的文件路径,因此文件路径必须全部使用英文字符。

3. videowrite = cv2.VideoWriter(r'F:\test.mp4',-1,20,size)视频输出路径同样需要遵循英文字符规范,尝试使用包含中文的路径会导致失败。


为了便于处理,我将输入图片统一命名为0.png至599.png。

依据上述代码逻辑,成功生成了对应的视频文件。

以上就是关于利用Python将多张图片合成视频的完整实现方法。如需了解更多Python图片合成视频的相关技巧,建议查阅本站历史文章或继续浏览后续内容,感谢大家的支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。