Python实现图片转视频代码实战(亲测有效)
本文详细介绍使用Python和OpenCV库将大量静态图片转换为视频文件的完整流程。通过glob获取图片路径,利用cv2.VideoWriter创建视频对象并逐帧写入,最终生成可播放的视频文件。代码经过实测验证,适用于标注数据浏览等场景,支持avi和mp4格式。
一、图片转视频
任务需求背景
在数据标注工作中,往往需要反复浏览海量图片(数量级达万张以上),以确认目标类别及室内户型布局。然而,在电脑上直接浏览图片存在明显不足:一是需要持续点击鼠标或键盘,操作繁琐;二是图片加载速度往往跟不上点击频率,导致体验不佳。值得注意的是,网上虽有许多图片转视频的代码,但真正能稳定运行的寥寥无几。本文提供的代码经过实际测试,能够成功生成视频文件。
代码依赖库
opencv-python==4.5.2 numpy==1.19.2 glob(python自带模块)
代码实战
基本步骤如下: a. 使用
glob获取路径下的所有图片; b.cv2.imread()读取所有图片; c. 将读取的图片存于列表中; d. 使用cv2.VideoWriter()创建VideoWriter对象,注意参数的设置; e. 使用cv2.VideoWriter().write()保存每一帧图像到视频文件; f. 释放VideoWriter对象;
import cv2
import numpy as np
import glob
import os
# 其它格式的图片也可以
img_array = []
for filename in glob.glob('E:/3DS1Data/20211118/29984CRL30V00067087/dataset/rgb/*.png'):
img = cv2.imread(filename)
height, width, layers = img.shape
size = (width, height)
img_array.append(img)
# avi:视频类型,mp4也可以
# cv2.VideoWriter_fourcc(*'DIVX'):编码格式
# 5:视频帧率
# size:视频中图片大小
out = cv2.VideoWriter('E:/3DS1Data/20211118/29984CRL30V00067087/dataset/project-all.avi',
cv2.VideoWriter_fourcc(*'DIVX'),
5, size)
for i in range(len(img_array)):
out.write(img_array[i])
out.release()
下图是原始图片数据:

生成的视频文件(播放中):

到此这篇关于Python实现图片与视频互转代码实战(亲测有效)的文章就介绍到这了,更多相关Python图片与视频互转内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









