返回顶部
首页 > 资讯 > 后端开发 > Python >python-opencv第二期:imwrite函数详解
  • 940
分享到

python-opencv第二期:imwrite函数详解

opencvpython计算机视觉 2023-09-24 15:09:06 940人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

概要:众嗦粥之所周知,在如今计算机视觉(Computer Version short for CV)是人工智能与机器人技术发展的一个重大研究方向,而opencv作为一个专门为计算机视觉编程提供技术与函数支持的第三方库,自然是一个需要重点研究

概要:众嗦粥之所周知,在如今计算机视觉(Computer Version short for CV)是人工智能与机器人技术发展的一个重大研究方向,而opencv作为一个专门为计算机视觉编程提供技术与函数支持的第三方库,自然是一个需要重点研究的内容。本文就将介绍其中一个较为基础的函数——imwrite函数,将我们编辑后的图片矩阵以文件的形式储存起来,与我们第一期的imread函数形成呼应关系。(唱山歌(bushi)

本文依旧是请出“饥荒”中的角色“温蒂姐妹”作为我们今天的实例操作对象(温蒂:我的花去哪了),如下图所示。话不多说,我是Kamen Black君,马上开始今天的学习

201bd4c6cf90495aa32a1f22efa10d00.png

正文内容:

56b8d441e6d74b53b6c2f8848c71de66.jpeg

print("祝大家每天快乐,love and peace!")

①使用前准备:

首先依旧是调用OpenCV的第三方库,作为我们使用imwrite函数的大前提。

import cv2

②语法说明:

cv2.imwrite(filename,img,params)

其中,filename的数据类型是const String&,这里要填入的参数是我们选择来要保存编辑后图片的路径,要注意的是,要加上诸如jpg、png的后缀,不然可是会有很可怕的惩罚的哦(报错);

           img的数据类型是array(即数组类型),这里一般情况下要填入的是8位单通道或3通道(带有BGR通道顺序)图像,但是凡事都有例外(规则都是用来打破的!),如下所示:

imwrite函数是基于文件扩展名选择图像的格式。通常,使用此功能只能保存8位单通道或3通道(带有BGR通道顺序)图像,但有以下例外:

▶对于PNG,JPEG2000和TIFF格式,可以保存16位无符号(CV_16U)图像。


▶32位浮点(CV_32F)图像可以保存为PFM,TIFF,OpenEXR和Radiance HDR格式; 使用LogLuv高动态范围编码(每像素4个字节)保存3通道(CV_32FC3)TIFF图像。


▶可以使用此功能保存带有Alpha通道的PNG图像。为此,创建8位(或16位)4通道图像BGRA,其中alpha通道最后。完全透明的像素应该将alpha设置为0,完全不透明的像素应该将alpha设置为255/65535。


如果格式,深度或通道顺序不同,请在保存之前使用Mat :: convertTo和cv :: cvtColor进行转换。或者,使用通用FileStorage I / O函数将图像保存为XML或YAML格式。

             params 的数据类型是const int&,可以不进行写入(有默认状态),也可以多个写入,具体格式请见实例操作部分。这里要填入的参数是用来表示图片要被特定格式保存的,有些参数也可以用相应的整数来进行表示,如下所示:

params的分类与作用
cv2.IMWRITE_JPEG_QUALITY对于JPEG,它可以是从0到100的质量(越高越好)。默认值为95。
cv2.IMWRITE_JPEG_PROGRESSIVE启用JPEG功能,0或1,默认为False。
cv2.IMWRITE_JPEG_OPTIMIZE启用JPEG功能,0或1,默认为False。
cv2.IMWRITE_JPEG_RST_INTERVALJPEG重启间隔,0 - 65535,默认为0 - 无重启。
cv2.IMWRITE_JPEG_LUMA_QUALITY单独的亮度质量等级,0 - 100,默认为0 - 不使用。
cv2.IMWRITE_JPEG_CHROMA_QUALITY单独的色度质量等级,0 - 100,默认为0 - 不使用。
cv2.IMWRITE_PNG_COMPRESSioN对于PNG,它可以是从0到9的压缩级别。值越高意味着更小的尺寸和更长的压缩时间。如果指定,则策略更改为IMWRITE_PNG_STRATEGY_DEFAULT(Z_DEFAULT_STRATEGY)。默认值为1(最佳速度设置)。
cv2.IMWRITE_PNG_STRATEGY其中一个品种:ImwritePNGFlags,默认为IMWRITE_PNG_STRATEGY_RLE。
cv2.IMWRITE_PNG_BILEVEL二进制级别PNG,0或1,默认为0。
cv2.IMWRITE_PXM_BINARY对于PPM,PGM或PBM,它可以是二进制格式标志,0或1.默认值为1。
cv2.IMWRITE_EXR_TYPE
cv2.IMWRITE_WEBP_QUALITY

覆盖EXR存储类型(默认为FLOAT(FP32))

对于WEBP,它可以是1到100的质量(越高越好)。默认情况下(不带任何参数),如果质量高于100,则使用无损压缩。

cv2.IMWRITE_PAM_TUPLETYPE对于PAM,将TUPLETYPE字段设置为为格式定义的相应字符串值。
cv2.IMWRITE_TIFF_RESUNIT对于TIFF,用于指定要设置的DPI分辨率单位; 请参阅libtiff文档以获取有效值。
cv2.IMWRITE_TIFF_XDPI对于TIFF,用于指定X方向DPI。
cv2.IMWRITE_TIFF_YDPI对于TIFF,用于指定Y方向DPI。
cv2.IMWRITE_TIFF_COMPRESSION对于TIFF,用于指定图像压缩方案。请参阅libtiff以获取与压缩格式对应的整数常量。注意,对于深度为CV_32F的图像,仅使用libtiff的SGILOG压缩方案。对于其他支持的深度,可以通过此标志指定压缩方案; LZW压缩是默认值。
cv2.IMWRITE_JPEG2000_COMPRESSION_X1000对于JPEG2000,用于指定目标压缩率(乘以1000)。该值可以是0到1000.默认值是1000

 (小声BB:那么多,但常用的其实没几个) 

③实例操作:

普通版温蒂姐妹:

>>> import cv2>>> img=cv2.imread("F://wendy.png")>>> cv2.imwrite("F://1.jpeg",img)True

6cde8861276b4b8ea722ff48d0141f43.jpeg

无损版温蒂姐妹:

>>> cv2.imwrite("F://4.jpeg",img,[cv2.IMWRITE_JPEG_QUALITY,100])True

3b9aa501dba4485a8873eead163140ad.jpeg

战损版温蒂姐妹:

>>> cv2.imwrite("F://2.jpeg",img,[cv2.IMWRITE_JPEG_QUALITY,10])True

5506883d5ae54521af4c0acedf6c6b0b.jpeg

超高校级战损版温蒂姐妹:

>>> cv2.imwrite("F://3.jpeg",img,[cv2.IMWRITE_JPEG_QUALITY,2])True

a1f4acd104e94721b19488038ed4dd51.jpeg

多参数演示:

>>> cv2.imwrite("F://5.jpeg",img,[cv2.IMWRITE_JPEG_LUMA_QUALITY,10,cv2.IMWRITE_JPEG_QUALITY,100])True

954871c634a0431195a5fdb76462729b.jpeg

>>> cv2.imwrite("F://6.jpeg",img,[cv2.IMWRITE_JPEG_QUALITY,100,cv2.IMWRITE_JPEG_LUMA_QUALITY,10])True

eb901841e9f140f9a9ce66548d97921c.jpeg

通过上面两个栗子例子,我们可以得出结论:如果存在冲突的情况,位于后端的参数设置占据主导地位。可能就是所谓的后来者居上吧。

结语: 好了以上就是所有的内容,希望大家多多关注,点赞,收藏,这对我有很大的帮助。国康家安,大家下次再见喽!!!溜溜球~~

26d53210a1ce44f293c2d4a2ded15e82.jpeg7cf5685363524cf89f3e960333b03482.jpeg

参考文章:OpenCV笔记1:用imwrite函数来保存图片

来源地址:https://blog.csdn.net/m0_55320151/article/details/127012570

--结束END--

本文标题: python-opencv第二期:imwrite函数详解

本文链接: https://lsjlt.com/news/416952.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python-opencv第二期:imwrite函数详解
    概要:众嗦粥之所周知,在如今计算机视觉(Computer Version short for CV)是人工智能与机器人技术发展的一个重大研究方向,而opencv作为一个专门为计算机视觉编程提供技术与函数支持的第三方库,自然是一个需要重点研究...
    99+
    2023-09-24
    opencv python 计算机视觉
  • 详解python-opencv常用函数
    目录读取图像保存图像缩放图像读取图像 retval = cv2.imread( filename[, flags] ) retval是返回值,其值是读取到的图像。如果未读取到图像,则...
    99+
    2024-04-02
  • OpenCV中findContours函数参数详解
    注: 这篇文章用的OpenCV版本是2.4.10, 3以上的OpenCV版本相关函数可能有改动 Opencv中通过使用findContours函数,简单几个的步骤就可以检测出物体的轮...
    99+
    2022-11-13
    OpenCV findContours函数 OpenCV findContours
  • 详解Python+OpenCV实现图像二值化
    目录一、图像二值化1.效果2.源码二、图像二值化(调节阈值)1.源码一2.源码二一、图像二值化 1.效果 2.源码 import cv2 import numpy as np im...
    99+
    2024-04-02
  • python-opencv-cv2.threshold()二值化函数的使用
    目录1.cv2.threshold()参数说明2.代码示例1.cv2.threshold()参数说明 cv2.threshold(src, thresh, maxval, type[...
    99+
    2022-11-13
    python-opencv python cv2.threshold() 二值化函数
  • 数据库第一范式,第二范式,第三范式详解
    数据库第一范式,第二范式,第三范式详解 基础知识 实体:现实世界中客观存在并可以被区别的事物。比如“一个学生”、“一本书”、“一门课”等等。值得强调的是这里所说的“事物”不仅仅是看得见摸得着的“东西”...
    99+
    2023-09-30
    数据库 mysql 大数据
  • MySQL日期加减函数详解
    1. addtime()   为日期加上指定秒数 select addtime(now(),1); -- 加1秒 2. adddate()   有两种用法,第二个参数直接填数字的话是为日期加上指定天数,填int...
    99+
    2022-05-11
    MySQL 日期加减函数
  • 日期格式 FormatDateTime函数详解
    FormatDateTime函数是一种常用的操作日期格式的函数,它用于将指定的日期值转换为指定的日期格式。语法:FormatDate...
    99+
    2023-09-13
    详解
  • OpenCV图像卷积之cv.filter2D()函数详解
    目录APIC++Python函数详解HelloWorld参数详解srcddepthkernel & anchordeltaborderType扩展——...
    99+
    2024-04-02
  • OpenCV图像缩放之cv.resize()函数详解
    目录系列前言API函数详解参数列表缩放方式其一缩放方式其二两种方式的优先级关于插值方式扩展 —— 相关函数总结系列前言 这个系列是我第一个想要更下去的系列。每...
    99+
    2024-04-02
  • OpenCV 基本图形绘制函数详解
    用于绘制直线的line函数; 用于绘制椭圆的ellipse函数; 用于绘制矩形的rectangle函数; 用于绘制圆的circle函数; 用...
    99+
    2024-04-02
  • mysql日期函数TO_DAYS()函数的详细讲解
    目录背景:TO_DAYS()函数总结背景: 今天在项目里看到的sqlserver的days()函数,计算从0年开始到给定时间的天数,现在要修改为mysql语法,有个很奇怪的现象奥,同样都是今天2021-11-30,sql...
    99+
    2024-04-02
  • python函数详解
    结构:    def  函数名():        函数体执行:    函数名()返回值:    return    一,函数中,遇到return终止函数    二,返回值,返回给了函数的调用者:函数名()    return单个值,返回单...
    99+
    2023-01-31
    详解 函数 python
  • 详解Python OpenCV数字识别案例
    目录前言一、案例介绍二、步骤1、模板读入,以及一些包的导入,函数定义等2、模板预处理,将模板数字分开,并排序3、输入图像预处理,将图像中的数字部分提取出来4、模板匹配总结前言 实践是检验真理的唯一标准。 因为觉得一板...
    99+
    2022-06-02
    python opencv opencv 数字识别
  • PHP日期时间函数date() 详解
    **date()函数是我们在php开发中常碰到并且会使用到的一个日期函数,下面我来给大家介绍date()函数的一些基本扮靓和方法,有需要了解的朋友可进入参考. 日期时间函数是PHP 的核心组成部分。无...
    99+
    2023-09-11
    php 开发语言
  • Vue之生命周期函数详解
    目录生命周期函数常用的生命周期的钩子 关于Vue销毁实例: 总结 生命周期函数 生命周期函数又叫:生命周期回调函数,生命周期函数、 生命周期钩子 是什么:Vue在关键时刻帮我们调用...
    99+
    2024-04-02
  • C++中的二进制函数详解
    C++中的二进制函数详解二进制函数是计算机科学中一类重要的函数,它们基于二进制操作,用于处理二进制数据。在C++中,二进制函数提供了丰富的功能,可以进行位操作、位移操作以及逻辑操作。一、位操作位操作是对二进制数据的每一位进行操作的方法。C+...
    99+
    2023-11-18
    二进制函数分析
  • python imread函数详解
    Python 中各种imread函数的区别与联系 最近一直在用python做图像处理相关的东西,被各种imread函数搞得很头疼,因此今天决定将这些imread总结一下,以免以后因此犯些愚蠢的错误。如果你正好也对此感...
    99+
    2022-06-02
    python imread函数 python imread函数讲解
  • Python isalpha()函数详解
    「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:小白零基础《Python入门到精通》 isalpha...
    99+
    2023-10-23
    python 网络安全 人工智能 机器学习
  • Python Open函数详解
    这里写目录标题 一级目录二级目录三级目录1、文件IO的常见操作2、打开操作Open2.1 file 文件名2.2 mode 模式2.2.1. R模式:mode = "r"2.2.2. W模式:...
    99+
    2023-10-24
    python 开发语言 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作