【OpenCV 例程 300篇】253. 多帧图像(动图)的读取与保存
『youcans 的 OpenCV 例程300篇 - 总目录』
【youcans 的 OpenCV 例程 300篇】253. 多帧图像(动图)的读取与保存
1. 多帧图像(动图)
多帧图像是将多幅图像或帧数据保存在单个文件中,也称为多页图像或图像序列,主要用于对时间或场景上相关图像集合进行操作的场合。例如,时间序列图像是动态图像(动图),可以形成简单的动画效果; 计算机X线断层扫描图像 (CT)是空间序列图像。常用的多帧图像格式有 GIF、PNG、TIFF。
2. 多帧图像读取函数 cv.imreadmulti
函数 cv.imreadmulti() 用于从指定的多帧图像文件中读取多幅图像。
函数说明:
cv.imreadmulti(filename[, mats=None, flags=IMREAD_ANYCOLOR]) -> retval, mats
cv.imreadmulti(filename, start, count[, mats=None, flags=IMREAD_ANYCOLOR]) -> retval, mats
参数说明:
- filename:读取多帧图像的文件路径和文件名
- mats:返回值,读取的图像文件向量,列表类型,列表元素为二维Numpy数组
- flags:图像读取模式,可选项,默认为 IMREAD_ANYCOLOR
- IMREAD_COLOR(1):始终将图像转换为 3 通道BGR彩色图像,默认方式
- IMREAD_GRAYSCALE(0):始终将图像转换为单通道灰度图像
- IMREAD_UNCHANGED(-1):按原样返回加载的图像(使用Alpha通道)
- IMREAD_ANYDEPTH(2):在输入具有相应深度时返回16位/ 32位图像,否则将其转换为8位
- IMREAD_ANYCOLOR(4):以任何可能的颜色格式读取图像
- start:开始读取的帧索引,即跳过此前的图像帧
- count:读取图像帧的页数
- retval:返回值,读取成功标志,布尔值
注意事项:
- 读取多帧图像文件的返回值 mats 是列表(list)类型,列表元素是二维 Numpy数组,即每个列表元素 mats[i] 是一幅二维图像。
【例程】多帧图像(动图)的读取
本例程示例多帧图像(动图)的读取。
"""
200 OpenCV examples by youcans / OpenCV 例程 200 篇
Copyright: 2022, Shan Huang, youcans@qq.com
"""# 【0108】多帧图像(动图)的读取和保存
import cv2 as cv
from matplotlib import pyplot as pltif __name__ == '__main__':# 读取多帧图像文件imgMulti = cv.imreadmulti("../images/imgList.tiff") # 读取多帧图像文件print("len(imgList): ", len(imgList)) # imgList 是列表# 显示多帧图像文件for i in range(len(imgList)):print("\timgList[{}]: {}".format(i, imgList[i].shape)) # imgList[i] 是 Numpy 数组cv.imshow("imgList", imgList[i]) # 在窗口 imgList 逐帧显示cv.waitKey(1000)cv.destroyAllWindows()
3. 多帧图像保存函数 cv.imwritemulti
函数 cv.imwritemulti() 用于将多幅图像保存到指定的多帧图像文件中。
函数说明:
cv.imwritemulti(filename, img[, params=std::vector()]) -> retval
参数说明:
- filename:读取多帧图像的文件路径和文件名
- img:写入的多帧图像的数据文件
- flags:图像写入模式,可选项,默认值None
- retval:返回值,读取成功标志,布尔值
注意事项:
- 写入多帧图像文件的数据文件 img 是列表(list)类型,列表元素是二维 Numpy数组,即每个列表元素 img[i] 是一幅二维图像。
- 多帧图像中的每帧图像的大小可以相同,也可以不同。
- 写入多帧图像文件的数据文件可以是 tiff 格式,OpenCV 不允许 gif 格式。
【例程】多帧图像(动图)的保存
本例程示例多帧图像(动图)的保存。
"""
200 OpenCV examples by youcans / OpenCV 例程 200 篇
Copyright: 2022, Shan Huang, youcans@qq.com
"""# 【0108】多帧图像(动图)的保存
import cv2 as cv
from matplotlib import pyplot as pltif __name__ == '__main__':# 读取单幅图像,支持 bmp、jpg、png、tiff 等常用格式img1 = cv.imread("../images/FVid1.png") # 读取彩色图像 FVid1.pngimg2 = cv.imread("../images/FVid2.png") # 读取彩色图像 FVid2.pngimg3 = cv.imread("../images/FVid3.png") # 读取彩色图像 FVid3.pngimg4 = cv.imread("../images/FVid4.png") # 读取彩色图像 FVid4.pngimgList = [img1, img2, img3, img4] # 生成多帧图像列表# 保存为多帧图像文件saveFile = "../images/imgList.tiff" # 保存文件的路径ret = cv.imwritemulti(saveFile, imgList)if (ret):print("Image List Write Successed in {}".format(saveFile))print("len(imgList): ", len(imgList)) # imgList 是列表,只有长度没有形状
【本节完】
版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/128466627)
Copyright 2022 youcans, XUPT
Crated:2022-12-30
【OpenCV 例程 300篇】253. 多帧图像(动图)的读取与保存相关推荐
- 【OpenCV 例程 300 篇】107. 退化图像的维纳滤波
专栏地址:『youcans 的 OpenCV 例程 300篇 - 总目录』 [第 7 章:图像复原与重建] 106. 退化图像的逆滤波 107. 退化图像的维纳滤波 108. 约束最小二乘方滤波 10 ...
- 【OpenCV 例程300篇】40. 图像分段线性灰度变换
『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程300篇]40. 图像分段线性灰度变换 分段线性变换函数可以增强图像各部分的反差,增强感兴趣的灰 ...
- 【OpenCV 例程 300 篇】112. 滤波反投影重建图像
专栏地址:『youcans 的 OpenCV 例程 300篇 - 总目录』 [第 7 章:图像复原与重建] 110. 投影和雷登变换 111. 雷登变换反投影重建图像 112. 滤波反投影重建图像 [ ...
- 【OpenCV 例程300篇】01. 图像的读取(cv2.imread)
专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』 01. 图像的读取(cv2.imread) 02. 图像的保存(cv2.imwrite) 03. 图像的显示(cv2.imsh ...
- 【OpenCV 例程300篇】204. 图像的色彩风格滤镜
OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换(cv.LUT) 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 ...
- 【OpenCV 例程300篇】02. 图像的保存(cv2.imwrite)
专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』 01. 图像的读取(cv2.imread) 02. 图像的保存(cv2.imwrite) 03. 图像的显示(cv2.imsh ...
- 【youcans的OpenCV例程300篇】总目录
版权声明: 转载本系列作品时必须标注以下版权内容: [youcans@qq.com, youcans的OpenCV 例程300篇, https://blog.csdn.net/youcans/cate ...
- 【OpenCV 例程 300篇】252.视频文件的读取与保存
『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]252. 视频文件的读取与保存 视频文件是由一系列图像组成的,视频的每一帧都是一幅图 ...
- 【OpenCV 例程 300篇】221.加密马赛克图像处理与解密复原
『youcans 的 OpenCV 例程200篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]221.加密马赛克图像处理与解密复原 9. 图像的马赛克处理 马赛克效果是广泛使用的 ...
最新文章
- 2022-2028年中国电熔镁行业市场研究及发展趋势分析报告
- PoseFormer:首个纯基于Transformer的 3D 人体姿态估计网络,性能达到 SOTA
- 深入浅出 CPropertySheet
- Windows下Nginx+Tomcat整合的安装与配置
- 学python可以做什么职业好-业余学Python能做什么?对职业发展有什么帮助?
- tcp client.cs
- python学习笔记(15)循环设计
- 强化管理远程分支机构利器之coreRODC[为企业部署Windows Server 2008系列九]
- Python自学笔记-lambda函数(来自廖雪峰的官网Python3)
- Google工程师多图详解Android架构
- 加州戴维斯分校计算机专业排名,加州大学戴维斯分校的计算机专业如何?
- 使用HTML标记语言画出表格,HTML标记语言——表格标记
- 安捷伦自动测试软件,安捷伦精干的测试工具
- 电子榨菜之Mendix漫画
- ios:应用发布App Store流程
- 淘宝开源的代码质量检测工具,真强啊~
- OpenCV 学习笔记03 凸包convexHull、道格拉斯-普克算法Douglas-Peucker algorithm、approxPloyDP 函数...
- discuz ckplayer视频
- [配环境]Miniconda在服务器上的安装与使用
- 计算机毕业设计Node.js+Express郑州市智慧农贸市场管理系统(源码+程序+lw+远程调试)
热门文章
- 猴子吃桃问题c语言链表,数据结构课程设计--猴子吃桃子问题.doc
- Flex布局教程:语法篇(转载阮一峰)
- 关于集电极开路(OC)或漏极开路(OD)输出的结构
- 听哥一句劝,按这套嵌入式的课程内容和课程体系去学习
- JQuery设置textarea只读readonly
- 编程练习:非质数分解成质数相乘
- windows,cmd中进行盘符的切换
- 项目管理(PMP学习些什么)
- google pay billing 支付嵌入中需要注意的问题
- 服务器维修功夫全明星,功夫全明星闪退、进不去、黑屏不能玩的原因和解决办法[图]...