『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:返回值,读取成功标志,布尔值

注意事项:

  1. 读取多帧图像文件的返回值 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:返回值,读取成功标志,布尔值

注意事项:

  1. 写入多帧图像文件的数据文件 img 是列表(list)类型,列表元素是二维 Numpy数组,即每个列表元素 img[i] 是一幅二维图像。
  2. 多帧图像中的每帧图像的大小可以相同,也可以不同。
  3. 写入多帧图像文件的数据文件可以是 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. 多帧图像(动图)的读取与保存相关推荐

  1. 【OpenCV 例程 300 篇】107. 退化图像的维纳滤波

    专栏地址:『youcans 的 OpenCV 例程 300篇 - 总目录』 [第 7 章:图像复原与重建] 106. 退化图像的逆滤波 107. 退化图像的维纳滤波 108. 约束最小二乘方滤波 10 ...

  2. 【OpenCV 例程300篇】40. 图像分段线性灰度变换

    『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程300篇]40. 图像分段线性灰度变换 分段线性变换函数可以增强图像各部分的反差,增强感兴趣的灰 ...

  3. 【OpenCV 例程 300 篇】112. 滤波反投影重建图像

    专栏地址:『youcans 的 OpenCV 例程 300篇 - 总目录』 [第 7 章:图像复原与重建] 110. 投影和雷登变换 111. 雷登变换反投影重建图像 112. 滤波反投影重建图像 [ ...

  4. 【OpenCV 例程300篇】01. 图像的读取(cv2.imread)

    专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』 01. 图像的读取(cv2.imread) 02. 图像的保存(cv2.imwrite) 03. 图像的显示(cv2.imsh ...

  5. 【OpenCV 例程300篇】204. 图像的色彩风格滤镜

    OpenCV 例程200篇 总目录 201. 图像的颜色空间转换 202. 查表快速替换(cv.LUT) 203. 伪彩色图像处理 204. 图像的色彩风格滤镜 205. 调节色彩平衡/饱和度/明度 ...

  6. 【OpenCV 例程300篇】02. 图像的保存(cv2.imwrite)

    专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』 01. 图像的读取(cv2.imread) 02. 图像的保存(cv2.imwrite) 03. 图像的显示(cv2.imsh ...

  7. 【youcans的OpenCV例程300篇】总目录

    版权声明: 转载本系列作品时必须标注以下版权内容: [youcans@qq.com, youcans的OpenCV 例程300篇, https://blog.csdn.net/youcans/cate ...

  8. 【OpenCV 例程 300篇】252.视频文件的读取与保存

    『youcans 的 OpenCV 例程300篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]252. 视频文件的读取与保存 视频文件是由一系列图像组成的,视频的每一帧都是一幅图 ...

  9. 【OpenCV 例程 300篇】221.加密马赛克图像处理与解密复原

    『youcans 的 OpenCV 例程200篇 - 总目录』 [youcans 的 OpenCV 例程 300篇]221.加密马赛克图像处理与解密复原 9. 图像的马赛克处理 马赛克效果是广泛使用的 ...

最新文章

  1. 2022-2028年中国电熔镁行业市场研究及发展趋势分析报告
  2. PoseFormer:首个纯基于Transformer的 3D 人体姿态估计网络,性能达到 SOTA
  3. 深入浅出 CPropertySheet
  4. Windows下Nginx+Tomcat整合的安装与配置
  5. 学python可以做什么职业好-业余学Python能做什么?对职业发展有什么帮助?
  6. tcp client.cs
  7. python学习笔记(15)循环设计
  8. 强化管理远程分支机构利器之coreRODC[为企业部署Windows Server 2008系列九]
  9. Python自学笔记-lambda函数(来自廖雪峰的官网Python3)
  10. Google工程师多图详解Android架构
  11. 加州戴维斯分校计算机专业排名,加州大学戴维斯分校的计算机专业如何?
  12. 使用HTML标记语言画出表格,HTML标记语言——表格标记
  13. 安捷伦自动测试软件,安捷伦精干的测试工具
  14. 电子榨菜之Mendix漫画
  15. ios:应用发布App Store流程
  16. 淘宝开源的代码质量检测工具,真强啊~
  17. OpenCV 学习笔记03 凸包convexHull、道格拉斯-普克算法Douglas-Peucker algorithm、approxPloyDP 函数...
  18. discuz ckplayer视频
  19. [配环境]Miniconda在服务器上的安装与使用
  20. 计算机毕业设计Node.js+Express郑州市智慧农贸市场管理系统(源码+程序+lw+远程调试)

热门文章

  1. 猴子吃桃问题c语言链表,数据结构课程设计--猴子吃桃子问题.doc
  2. Flex布局教程:语法篇(转载阮一峰)
  3. 关于集电极开路(OC)或漏极开路(OD)输出的结构
  4. 听哥一句劝,按这套嵌入式的课程内容和课程体系去学习
  5. JQuery设置textarea只读readonly
  6. 编程练习:非质数分解成质数相乘
  7. windows,cmd中进行盘符的切换
  8. 项目管理(PMP学习些什么)
  9. google pay billing 支付嵌入中需要注意的问题
  10. 服务器维修功夫全明星,功夫全明星闪退、进不去、黑屏不能玩的原因和解决办法[图]...