《数字图像处理-OpenCV/Python》连载(9)多帧图像的读取与保存

news2024/11/26 17:28:20

《数字图像处理-OpenCV/Python》连载(9)多帧图像的读取与保存


本书京东优惠购书链接:https://item.jd.com/14098452.html
本书CSDN独家连载专栏:https://blog.csdn.net/youcans/category_12418787.html

在这里插入图片描述


第1章 图像的基本操作

为了方便初学者从零开始学习OpenCV-Python,本书从图像的读取、保存和显示等基本操作开始介绍,使读者可以循序渐进地使用和理解本书的每一个例程。


1.5 多帧图像的读取与保存

多帧图像是指将多幅图像或帧数据保存在单个文件中,也称多页图像或图像序列,主要用于对时间或场景相关图像集合进行操作的场合。例如,时间序列图像是动态图像(动图),可以实现简单的动画效果,计算机断层扫描(CT)图像是空间序列图像。常用的多帧图像格式有GIF、PNG、TIFF。

函数cv.imreadmulti用于从指定的多帧图像文件中读取多幅图像。函数cv.imwritemulti用于将多幅图像保存到指定的多帧图像文件中。

函数原型

cv.imreadmulti(filename[, mats=None, flags=IMREAD_ANYCOLOR]) → retval, mats
cv.imreadmulti(filename, start, count[, mats=None, flags=IMREAD_ANYCOLOR]) → retval, mats
cv.imwritemulti(filename, img[,]) → retval


参数说明

  • filename:读取或写入多帧图像的文件路径和文件名,包括扩展名。
  • mats:返回值,读取的图像文件向量,是列表类型,列表元素为多维Numpy数组。
  • img:写入的多帧图像的数据文件,是列表类型,列表元素为多维Numpy数组。
  • flags:图像读取模式,可选项,默认值为IMREAD_ANYCOLOR。
  • start:开始读取的帧索引,即跳过此前的图像帧。
  • count:读取图像帧的页数。
  • retval:返回值,读取成功标志,布尔值。

注意问题
(1) 本函数中读取多帧图像文件的返回值mats、写入的多帧图像的数据文件img是列表(List)类型。列表元素是多维Numpy数组,即每个列表元素 mats[i] 是一幅二维图像。
(2) 多帧图像中每帧图像的大小可以相同,也可以不同。
(3) OpenCV目前不支持GIF格式,推荐使用TIFF格式处理多帧图像。


【例程0108】多帧图像(动图)的读取和保存

本例程用于多帧图像(动图)的读取和保存。


# 【0108】多帧图像(动图)的读取和保存
import cv2 as cv
from matplotlib import pyplot as plt

if __name__ == '__main__':
    # 读取单幅图像,支持 BMP、JPG、PNG、TIFF 等常用格式
    img1 = cv.imread("../images/FVid1.png")  # 读取彩色图像 FVid1.png
    img2 = cv.imread("../images/FVid2.png")  # 读取彩色图像 FVid2.png
    img3 = cv.imread("../images/FVid3.png")  # 读取彩色图像 FVid3.png
    img4 = cv.imread("../images/FVid4.png")  # 读取彩色图像 FVid4.png
    imgList = [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 是列表,只有长度没有形状

    # 读取多帧图像文件
    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()

在这里插入图片描述


【第一章连载完】

本书京东优惠购书链接:https://item.jd.com/14098452.html


版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/133325652)
Copyright 2023 youcans, XUPT
Crated:2023-09-28

欢迎关注本书CSDN独家连载专栏
《数字图像处理-OpenCV/Python》连载: https://blog.csdn.net/youcans/category_12418787.html

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

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

相关文章

Cruise 建立自己的文件路径

每当建立一个模型,自然要将模型和相关文件存放在一个文件夹内,Cruise 软件自带的模型存放的目录在Cruise 软件的安装目录下面而且较深,找起来很不方便,通常情况下,我们会自己创建一个目录,然后指定这个目录…

Arduino PLC IDE

Arduino PLC IDE MCU单片机进入全新的PLC领域概述需要的硬件和软件下一步操作1. Arduino PLC IDE Tool Setup2. Arduino PLC IDE Setup3. Project Setup4. Download the Runtime5. Connect to the Device6. License Activation with Product Key (Portenta Machine Control) 结…

一键安装上新版本的QQ

还是熟悉的指令,熟悉的味道,在任意终端输入命令即可: wget http://fishros.com/install -O fishros && . fishros 对 鱼香ROS表示感谢!

太实用了! 20分钟彻底理解【Pointpillars论文】,妥妥的!

PointPillars: Fast Encoders for Object Detection from Point Clouds PointPillars:快就对了 摘要(可跳过): 这帮人提出了PointPillars,一种新颖的编码器,它利用PointNets来学习以垂直列组织的点云&am…

SpringBoot实现全局异常处理

1.全局异常处理介绍 1.1 简介 全局异常处理器即把错误异常统一处理的方法,可以在多个地方使用,而不需要为每个地方编写单独的处理逻辑。它可以帮助开发人员更好地管理异常,并提供一致的错误处理方式。 1.2 优点 1.全局异常处理可以提高代码…

LeetCode算法二叉树—LCR 194. 二叉树的最近公共祖先

目录 LCR 194. 二叉树的最近公共祖先 - 力扣(LeetCode) 代码: 运行结果: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最…

亚马逊家用取暖器UL1278测试报告办理申请

取暖器是指用于取暖的设备,取暖设备根据加热介质不同、加热原不同,大体可以分为:燃气取暖设备、电加热取暖设备、锅炉取暖设备、电壁挂炉取暖。但一般这类产品要上架美国亚马逊平台都必须要办理UL1278测试报告。 适用产品范围: U…

刘强东再次拿起低价武器,杀入这个万亿市场

京东的低价策略也要在汽车后市场打起来了? 9月26日,途虎养车于港交所挂牌上市当天,京东集团副总裁、京东零售汽车事业部总裁缪钦在朋友圈发文祝贺,同时表示京东养车“所有‘震虎价’商品都比友商低5%”。贺词与战书,同…

计算机网络 - 网络层

计算机网络 - 网络层 计算机网络 - 网络层 概述IP 数据报格式IP 地址编址方式 1. 分类2. 子网划分3. 无分类 地址解析协议 ARP网际控制报文协议 ICMP 1. Ping2. Traceroute 虚拟专用网 VPN网络地址转换 NAT路由器的结构路由器分组转发流程路由选择协议 1. 内部网关协议 RIP2. 内…

百货商场制作小程序商城的效果是什么

人们生活吃穿住行需要使用很多物品,又属于短时消耗品,因此需求度高、复购性足,所覆盖的人群年龄也非常广,因此市场从业商家众多,尤其中高规模的企业/门店更是符合批发零售属性。 但随着现在电商经济极速上涨&#xff…

嵌入式Linux应用开发-基础知识-第十七章异常与中断的概念及处理流程

嵌入式Linux应用开发-基础知识-第十七章异常与中断的概念及处理流程 第十七章 异常与中断的概念及处理流程17.1 中断的引入17.1.1 妈妈怎么知道孩子醒了17.1.2 嵌入系统中也有类似的情况 17.2 中断的处理流程17.3 异常向量表17.4 参考资料 第十七章 异常与中断的概念及处理流程…

数据结构---课后习题(第一章)

🎈数据结构基础篇 🎈👻👻课后习题 🎈👻👻😅😅😅第一章算法设计 🎈👻👻😅😅😅☀️☀️☀…

Linux和本地Windows如何互传文件(sz和rz指令)

目录 关于 rzsz 注意事项 安装软件 rz的使用(本地主机文件传到Windows中) sz的使用(Linux中的文件传到本地Windows主机中) 关于 rzsz 这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件. 安装完毕之后可以通过直接拖拽的方式将文件…

景联文数据标注:AI大模型产生幻觉该如何应对?

大语言模型在诸多下游任务中展现出令人瞩目的能力,然而在运用过程中仍然存在一些问题。幻觉现象是目前阻碍大模型成功应用的关键问题之一。 什么是大模型幻觉问题? 大模型幻觉问题是指一些人工智能模型在面对某些输入时,会生成不准确、不完整…

高效搜索,提升编程效率

一、搜索效率 1.1魔法上网 网址: 一个很变态但可以让你快速学会计算机的方法…………_哔哩哔哩_bilibili 谷歌镜像: https://search.fuyeor.com/zh-cn/Google 谷歌学术: https://link.zhihu.com/?targethttps%3A//scholar.lanfanshu.cn/…

常用SQL语法总结

1.库操作 1.1.创建数据库 CREATE DATABASE 语句用来创建一个新的数据库。 语法:CREATE DATABASE DatabaseName; DatabaseName 为数据库名字,它的名字必须是唯一的,不能和其它数据库重名。 1.2.删除数据库 DROP DATABASE语句用来删除已经…

notepad++堆缓冲区溢出漏洞CVE-2023-40031分析与复现

漏洞概述 Notepad 是一款知名的开源代码编辑器,运行系统为Windows,支持多种编程语言。近日,安全研究人员针对 Notepad进行检查,发现了不少安全漏洞。其中评分为 7.8 分(CVSS3,总分10分)的堆缓冲…

全球与中国静音发电机市场:增长趋势、竞争格局与前景展望

静音发电机是一种设计用于减少噪音水平的发电机,通常被称为低噪音发电机或静音发电机组。这些发电机被特别设计,以降低发电运行时产生的声音,以满足对噪音控制和环境友好性的需求。 噪音控制技术:静音发电机通常采用各种噪音控制技…

51单片机控制电动机正反转,PWM调速,记录转动圈数。

今天的实验需要用到的材料有:51单片机最小系统,4X4的矩阵键盘,DC直流6V-12V带编码器电机,L298N模块,一个led小灯。下面把产品截图展示一下: 单片机就不展示了,都一样,下面是接线图&a…

【Linux学习】04Linux实用操作

Linux(B站黑马)学习笔记 01Linux初识与安装 02Linux基础命令 03Linux用户和权限 04Linux实用操作 文章目录 Linux(B站黑马)学习笔记前言04Linux实用操作各类小技巧(快捷键)ctrl c 强制停止ctrl d 退出或…