python实现图片与视频转换:将视频保存为图片,将批量图片保存为视频

news2024/12/28 8:47:10

1、将视频保存为图片

1.1 完整代码

# -*- coding: utf-8 -*-
import cv2
import os
cap = cv2.VideoCapture('TestFiles/2.mp4')
index = 0
prop = cv2.CAP_PROP_FRAME_COUNT
total = int(cap.get(prop)) # 获取视频总帧数
while(cap.isOpened()):
    # ret返回布尔值
    ret, frame = cap.read()
    if ret:
        img_name = f'{index}.jpg'
        save_path = os.path.join('test1', img_name)
        cv2.imwrite(save_path, frame)
        index += 1
        print(f'已保存第{index}帧图片,视频总帧数{total}')
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break
# 释放资源
cap.release()
# 关闭窗口
cv2.destroyAllWindows()

1.2 运行结果

运行过程,打印信息如下:
在这里插入图片描述
图片存储样式如下:
在这里插入图片描述

2. 批量将图片保存为视频

注:所有图片的大小需要保持一致,如果图片大小不相同,需要resize成相同大小。
此处将上面示例的图片再存储为视频,图片如下:
在这里插入图片描述

2.1 完整代码

# # 将多张大小一样的照片制作成视频,注意要大小相同
import os
import cv2

fourcc = cv2.VideoWriter_fourcc('m', 'p', '4', 'v')  # 视频编解码器mp4格式
#fourcc = cv2.VideoWriter_fourcc(*'XVID') # avi格式
width = 388  #图片宽,根据实际情况修改
height = 218 #图片长,根据实际情况修改
video_name = 'test1.mp4'  #保存的视频名称
fps = 30 # 每秒保存帧数
out = cv2.VideoWriter(video_name, fourcc, fps, (width, height))  # 写入视频

img_dir = 'test1' # 图片所在的文件夹路径
img_list = []
# 需保证所有图片的大小一致
for name in os.listdir(img_dir):
   img_list.append(name)

# 将图片按照文件名的数字大小排序,不然可能会出现图片保存视频,画面混乱的情况
img_list.sort(key=lambda x:int(x.split('.')[0]))
index = 1
for each in img_list:
   img_path = os.path.join(img_dir, each)  # 图片路径
   img = cv2.imread(img_path)
   print(f'已存储至第{index}张图片,图片名称{each}')
   index += 1
   out.write(img)
# 释放资源
out.release()

注意,遍历时图片的顺序一定要正确,不然存储的视频可能会出现画面混乱的情况。遍历前最好按照名称对图片进行一下排序。

2.2 运行结果

过程中的打印信息如下:
在这里插入图片描述

如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏!

欢迎关注下方G-Z-H:阿旭算法与机器学习,共同学习交流~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1113343.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

竹云荣膺2023十大数字化转型创新企业

10月14日上午,“2023DTWORLD国际数字科技领袖峰会/ IDI Award 数创奖颁奖盛典”在深圳会展中心(福田)2号馆成功举办。本届峰会由深圳市科学技术协会等相关政府部门指导,由深圳市科技交流服务中心、深圳市人工智能行业协会、湾盟产…

医疗终端札记

文章目录 一、打印Windows 下打印 PDF打印 Word转换格式 一、打印 Windows 下打印 PDF 从 Windows 命令行打印 PDF AcroRd32.exe /t "C:\Path\To\Your\File.pdf" "PrinterName" # 其中,“C:\Path\To\Your\File.pdf”是您要打印的PDF文件的完…

嵌入式软件开发笔试面试

C语言部分: 1.gcc的四步编译过程 1.预处理 展开头文件,删除注释、空行等无用内容,替换宏定义。 gcc -E hello.c -o hello.i 2.编译 检查语法错误,如果有错则报错,没有错误则生成汇编文件。 gcc -S hello.i -o h…

在线录音工具分享,总有一款适合你!

“有人知道怎么在线录音吗?在网页上播放了一首民谣,觉得旋律很好听,但是不能下载,就想用录音的方式记录下来,可是完全不会操作,真的很急!有没有好心人教教我,谢谢!” 随…

衍射:经典波动行为

一、说明 在本页中,我将尝试引导您了解光背后的基础知识。光是粒子还是波? 衍射是与光传播偏差相关的现象的通用名称,与几何光学预测的偏差(即光的直线传播)有关,它揭示了光的性质波而不是微粒物质。 图1&a…

为T507-H开发板配置Samba服务,实现跨系统的文件共享——飞凌嵌入式

作为一款经典的国产芯,全志T507-H芯片被广泛应用于车载电子、电力、医疗、工业控制、物联网、智能终端等诸多领域当中,而在各种复杂的嵌入式Linux应用场景当中,“打通ARM板卡与Windows设备间的壁垒以实现跨平台的文件共享”是一项不能被忽视的…

IStoreOS结合内网穿透软件Cpolar实现公网远程访问

文章目录 前言1. ssh局域网登陆iStoreOS系统2. 安装Cpolar内 网穿透软件3. 测试公网远程链接4. 公网使用固定http地址远程访问iStoreOS webui界面 前言 iStoreOS系统是基于OpenWrt定制的软路由系统,提供了如轻nas,云盘,文件共享等众多网络服务…

21款奔驰EQC350升级原厂360全景影像 感受上帝视野

您是否经历过这种场面呢? 停车位,狭窄障碍停车困难 避免盲区,倒车盲区危及生命安全 狭窄路段,无法判断是否安全通过 视角盲区,小孩站在视野盲区看不到,Xjh15863 360度无缝3D全车可见,解决各…

最新《中国环境统计年鉴》2001-2022年-EXCEL面板数据

数据简介:本数据汇集全国31个省、直辖市环境方面的面板数据,涵盖自然状况、水环境、海洋环境、大气环境、固体废物、自然生态、土地利用、林业、自然灾害及突发事件、环境投资、城市环境、农村环境等11个一级指标,数百个二级、三级指标。通过…

照片后期编辑工具Lightroom Classic 2024 mac中文新增功能

Lightroom Classic 2024(lrC2024)是专为摄影爱好者和专业摄影师设计的软件,它提供了全面的照片编辑工具,可以精准调整照片的色彩、对比度和曝光等参数,以便定制后期处理效果。 在lrC2024中,用户体验得到了提…

【Mysql】Mysql中的B+树索引(六)

概述 从上一章节我们了解到InnoDB 的数据页都是由7个部分组成,然后各个数据页之间可以组成一个双向链表 ,而每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表 ,每个数据页都会为存储在它里边儿的记录生成一个页目录 &#xff…

随着Telegram的崛起,这些特性和运营方法你得知道~

截止至2023年6月,Telegram已成为除了WhatsApp之外全球苹果应用商店中用户下载量最多的社交网络应用,这个新兴的社媒平台正在逐渐扩大它的影响力。Telegram的崛起也意味着出现了新的商机,要怎么把握这个热门社媒来进行营销也成了各出海企业最关…

MapGIS 10.6 Pro新品发布!加速地理信息领域核心技术国产替代

10月18日,国产GIS软件厂商中地数码在深圳举办“时空筑基智绘九州”新品发布会,正式推出新一代全空间智能GIS升级之作——MapGIS 10.6 Pro。来自全国各地的地理信息产业专家学者汇聚一堂,共话地信科技自立自强,助推产业高质量发展。…

Steam中如何设置HTTP服务器防封

要在 Steam 中设置HTTP服务器,请按照以下步骤操作: 1、打开 Steam 客户端。 2、点击“设置”(即齿轮图标),然后选择“网络”。 3、在“网络”页面中,找到“HTTP服务器”部分。 4、首先,将“使…

抖音招聘直播报白是通过直播方式展现职位信息适用于企业和人力资源公司

首先,视频展示职位能够给求职者更直观的感受,让他们更好地了解岗位的详情和要求。其次,抖音的短视频流量能够让岗位信息覆盖更广泛的人群,增加招聘信息的曝光度。此外,抖音招聘的成本也较低,相比传统的人工…

智荟雄安,创想未来 | 竹云董事长受邀出席雄安新区2023软件和信息技术服务业创新发展论坛并作主题演讲

10月18日,以“智荟雄安 创想未来”为主题的雄安新区2023软件和信息技术服务业创新发展论坛在雄安新区国际酒店会议中心召开。河北省委常委,雄安新区党工委书记、管委会主任张国华出席活动。 中国科学院院士朱鲁华现场致辞,中国工程院院士邬贺…

AC修炼计划(AtCoder Regular Contest 167)

传送门:AtCoder Regular Contest 167 - AtCoder 再次感谢樱雪喵大佬的题解,讲的很详细,Orz。 大佬的博客链接如下:Atcoder Regular Contest 167 - 樱雪喵 - 博客园 (cnblogs.com) 第一题很签到,就省略掉了。 第二题…

函数设计心得:尽量避免布尔型参数

通常来说,我认为在设计一个函数原型的时候,应该尽量避免使用布尔类型的参数,除非函数名称能十分清楚的将这个参数的意思表达出来。 我并没有想教你做事,但是请听我细说 先举两个正面的例子,有一个 API 函数 EnableWi…

系统韧性研究(2)|系统韧性如何关联其他质量属性?

对大多数人来说,如果一个系统在逆境中继续执行它的任务,那么它会被认为具有韧性。换句话说,尽管过度的压力或多或少都会导致系统中断,但如果系统依然能够正常运行并提供所需的能力,则可认为该系统具备韧性。 系统韧性…

显示杂谈(二)winscope的使用

WinScope 提供了用于在窗口转换期间和转换后记录和分析 WindowManager 状态和 SurfaceFlinger 状态的基础架构和工具。WinScope 将所有相关的系统服务状态记录在一个跟踪文件中,您可以使用该文件重现并逐步查看转换。 抓winscope相关文件: 通过快捷设置记录跟踪情…