如何使用python快速将大批量图片合成为视频?

这篇具有很好参考价值的文章主要介绍了如何使用python快速将大批量图片合成为视频?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

由于CSDN大批量导入图片容易出现乱序,本程序将支撑图片转为视频,便于用视频的方式展示文件内容。

文件目录架构

python 图片转视频,python,音视频,开发语言

第一步-对图片名称进行批量修改

由于图片名称复杂多样,为便于统一化处理,增强程序的通用性,使用改名程序可以降低手动调整的复杂度。

import os

### 批量修改文件名,默认操作为将图片按0,1,2,3,,,顺序重命名
 
path_in = "./pictures"          #待批量重命名的文件夹
class_name = ".jpg"     #重命名后的文件名后缀
 
file_in = os.listdir(path_in)        #返回文件夹包含的所有文件名
num_file_in = len(file_in)          #获取文件数目
print(file_in , num_file_in)         #输出修改前的文件名
 
for i in range(0,num_file_in):
     t = str(i)
     new_name = os.rename(path_in+"/"+file_in[i],path_in+"/"+t+class_name)        #重命名文件名
 
file_out = os.listdir(path_in)
print(file_out)         #输出修改后的结果

改名之后的效果:
python 图片转视频,python,音视频,开发语言

第二步-将图片合称为视频

注意此部分的图片大小仍需要手动修改或输入。

import numpy as np
import cv2
import os

### 将图片合称为视频

# 1.每张图像大小
size = (4961,7016) #这里需要手动设置!!!
print("每张图片的大小为({},{})".format(size[0],size[1]))
# 2.设置源路径与保存路径
src_path = r'./pictures/'
sav_path = r'./vedio.mp4'
# 3.获取图片总的个数
all_files = os.listdir(src_path)
index = len(all_files)
print("图片总数为:" + str(index) + "张")
# 4.设置视频写入器
fourcc = cv2.VideoWriter_fourcc(*'mp4v')#MP4格式
#完成写入对象的创建,第一个参数是合成之后的视频的名称,第二个参数是可以使用的编码器,第三个参数是帧率即每秒钟展示多少张图片,第四个参数是图片大小信息
videowrite = cv2.VideoWriter(sav_path,fourcc,1,size)#2是每秒的帧数,size是图片尺寸
# 5.临时存放图片的数组
img_array=[]
 
# 6.读取所有jpg格式的图片 (这里图片命名是0-index.jpg example: 0.jpg 1.jpg ...)
for filename in [src_path + r'{0}.jpg'.format(i) for i in range(0,index)]:
    img = cv2.imread(filename)
    if img is None:
        print(filename + " is error!")
        continue
    img_array.append(img)
# 7.合成视频 
for i in range(0,index):
    img_array[i] = cv2.resize(img_array[i],size)
    videowrite.write(img_array[i])
    print('第{}张图片合成成功'.format(i))
print('------done!!!-------')

目前程序运行已无问题,合成较为迅速,但合成后的视频清晰度相较于图片会大幅降低,如何解决此缺陷还有待探索。
合成之后的视频:

vedio文章来源地址https://www.toymoban.com/news/detail-765573.html

到了这里,关于如何使用python快速将大批量图片合成为视频?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用postman做接口测试传入大批量动态参数的方法

    postman是一个非常好用的接口测试工具,而且功能也很强大,今天只简单说一下使用postman如何对一个接口传入大批量参数进行测试的方法。 以我测试的平台为例,我们的平台是做在线教育平台的,我模拟的场景是老师有一门课叫ABC,现在需要有1000个学生加入ABC这门课。我们不

    2024年01月23日
    浏览(52)
  • Python 自动获取大批量excel数据并填写到网页表单(pandas;selenium)

    自动获取大批量excel数据并填写到网页表单 部分网页获取下拉列表点击的方式有所差异 这个请根据网页源码自做选择 一定要学会使用IPDB调试工具 太好用了!!!! 可能需要pip update一下 看提示 很好解决 没有报错最好啦 Python真是太好用了 办公利器啊!!!!

    2024年02月12日
    浏览(46)
  • 多线程处理大批量数据操作

     @Autowired private DataSourceTransactionManager dataSourceTransactionManager; @Autowired private TransactionDefinition transactionDefinition; @Autowired private StudentService studentService; /**  * 对用户而言,27s 任是一个较长的时间,我们尝试用多线程的方式来经行修改操作看能否加快处理速度  * 预计创建10个线程

    2024年02月09日
    浏览(38)
  • elasticsearch删除大批量数据方法

    一般回用如下: 示例: 如果删除任务完成了,返回如下: 数据查询任务:

    2024年02月12日
    浏览(61)
  • Jmeter(三十一):制造大批量的用户数据数据

    需求:因测试需要,要造100w用户数据,通过用户名、手机号、密码可新增用户,其中用户名和电话号码要求100w用户不能重复 要点: 1、通过Bean shell Sampler实现用户名和手机号的足够随机。 符合我们常用规则的手机号:第一位为1,第二位为3-9,后面的9位为0-9即可。 phone=${_

    2024年02月10日
    浏览(36)
  • cesium实现大批量POI点位聚合渲染优化方案

    cesium目前只提供了entityCluster这个聚合类,使打点聚合更方便快捷的实现,但是一般在真正做项目的时候,大家会经常碰到成千上万个甚至几十万个点位需要聚合打点,那这时候你如果还是用entity去实现的话,怕是要被用户按在地上疯狂摩擦,摩擦。。。😅 我们可以通过模拟

    2024年02月09日
    浏览(38)
  • 远程运维大批量IT设备?向日葵批量部署、分组授权与安全功能解析

    数字化转型的不断推进,给予了企业全方位的赋能,但任何发展都伴随着成本与代价,比如在数字化转型过程中企业内部办公与外部业务所需的不断增加的IT设备数量,就为日常的运维工作提出了更大的挑战。 针对企业面对海量IT设备时的运维难、效率低、容易出错等问题,

    2024年02月14日
    浏览(40)
  • redis 无占用 两种方式 清除大批量数据 lua脚本

    redis存储了很多无用的key,占用了大量内存,需要清除 第一种 (颗粒度较大) lua脚本,删除某些规则的key,输入删除的key,返回删除的符合规则的key的数量 弊端:颗粒度比较大,发送一个lua脚本去执行,会占用较多时间,堵塞其他redis命令 java代码 这样直接删除,因为规则有很

    2024年04月28日
    浏览(32)
  • 记一次 OSS 大批量文件下载的实现 → bat脚本不好玩!

    一天夜里,侄女跟我哥聊天 侄女一脸期待的看着我哥:爸爸,你说妈妈和奶奶谁漂亮啊? 我哥不慌不忙的拿起一粒瓜子,轻声说道:为啥没有你啊? 侄女笑容渐起,似乎得到了她想要的回答,仍继续问道:那妈妈和奶奶还有我,谁漂亮? 我哥瞄了一眼侄女,又拿起一粒瓜子

    2024年02月05日
    浏览(38)
  • ZooKeeper+Kafka+ELK+Filebeat集群搭建实现大批量日志收集和展示

    大致流程:将nginx 服务器(web-filebeat)的日志通过filebeat收集之后,存储到缓存服务器kafka,之后logstash到kafka服务器上取出相应日志,经过处理后写入到elasticsearch服务器并在kibana上展示。 一、集群环境准备 二、搭建zookeeper集群 前提条件:三台机器分别修改时区、关闭防火墙

    2024年02月04日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包