python opencv保存图片_OpenCV Python 保存图片[通俗易懂]

python opencv保存图片_OpenCV Python 保存图片[通俗易懂]By凌顺2019年9月12日本示例使用的OpenCV版本是:4.1.1运行Python的编辑器:Jupyternotebook示例目的通过无损和有损的方式进行图片保存。实现代码1,加载图片importcv2#加载OpenCVimg=cv2.imread(“dashen.jpeg”)#读取/加载图片2,把图片保存为PNG格式使用无损的方式保存成PNG格式cv2.imw…

大家好,又见面了,我是你们的朋友全栈君。

python opencv保存图片_OpenCV Python 保存图片[通俗易懂]

python opencv保存图片_OpenCV Python 保存图片[通俗易懂]

By 凌顺

2019年9月12日

本示例使用的OpenCV版本是:4.1.1

运行Python的编辑器:Jupyter notebook

示例目的

通过无损和有损的方式进行图片保存。

实现代码

1,加载图片

import cv2 # 加载OpenCV

img = cv2.imread(“dashen.jpeg”) # 读取/加载 图片

2,把图片保存为PNG格式

使用无损的方式保存成PNG格式

cv2.imwrite(‘dashen_compressed.png’, img, [cv2.IMWRITE_PNG_COMPRESSION, 0])

运行完以上代码,在工作目录下会多出一个文件dashen_compressed.png。

我们对此文件进行对比,判断该文件与img的数据是否一样,从而判断是否有损失。

我们在cv.imwrite()的第三个参数中设置了PNG的编码方式保存图片,并设置了0值,此值在PNG格式中取值范围是0-9,0就是无损,9就是最高程度的压缩。

img_png = cv2.imread(“dashen_compressed.png”) # 读取/加载 图片

assert img_png.all() == img.all() # 对比两个图像数据是否一样,如果不一样就会出错

2,把图片保存为JPEG格式

使用压缩的方法保存为JPEG

cv2.imwrite(‘dashen_compressed.jpg’, img, [cv2.IMWRITE_JPEG_QUALITY, 0])

运行完以上代码,在工作目录下会多出一个文件dashen_compressed.png。

从文件大小的角度,与原图相比小了很多。

打开该文件与原图相比,也可以看出图片损失了很多数据。

python opencv保存图片_OpenCV Python 保存图片[通俗易懂]

我们在cv.imwrite()的第三个参数中设置了JPEG的编码方式保存图片,并设置了0值,此值在JPEG格式中取值范围是0-100,数值越高,保存的质量就越高。

程序说明

本示例主要认识cv.imwrite()的作用,可以通过设置有损或者无损的方式保存图片。

cv.imwrite()语法

retval = cv.imwrite( filename, img[, params] )

第一个参数 filename,要保存图片的文件名称。

第二个参数 img,输入图像数据。

(可选)第三个参数 params,设置编码格式特定参数(paramId_1,paramValue_1,paramId_2,paramValue_2,…),可以用的params列表请参考cv:: ImwriteFlags https://docs.opencv.org/4.1.1/d4/da8/group__imgcodecs.html#ga292d81be8d76901bff7988d18d2b42ac

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149218.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RPC协议及其python实例[通俗易懂]

    RPC协议及其python实例[通俗易懂]RPC协议在OpenStack中广泛使用,那么什么是RPC协议?做什么用的那?搜索了一阵,有了一个大概的印象。RPC是一个应用层的协议,分为client端和server端,server端写好了具体的函数实现,client端远程调用该函数,返回函数的结果。好处是很明显的:首先是可以直接利用别的程序的部分功能,这是最基础的。更重要的,利用rpc可以实现系统的分布式架构,一方面有些功能比

    2022年5月19日
    47
  • 如何在html添加css样式表,网页中添加CSS样式表的四种方式

    如何在html添加css样式表,网页中添加CSS样式表的四种方式本文向大家描述一下网页中添加CSS样式表的四种方式,首先让我们来看一下CSS样式表文件的优势,主要体现在两个方面,请看下文详细介绍。CSS样式表文件的优势表现在两个方面:***,简化了网页的格式代码,外部的CSS样式表还会被浏览器保存在缓存里,加快了下载显示的速度,也减少了需要上传的代码数量(因为重复设置的格式将被只保存一次)。第二,只要修改保存着网站格式的CSS样式表文件就可以改变整个站点的风格…

    2022年7月14日
    16
  • leetcode-138. 复制带随机指针的链表(链表)

    leetcode-138. 复制带随机指针的链表(链表)给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 next 指针和 random 指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点 。例如,如果原链表中有 X 和 Y 两个节点,其中 X.random –> Y 。那么在复制链

    2022年8月9日
    9
  • MT4-MQL4语言EA自动交易编程入门到精通[通俗易懂]

    MT4-MQL4语言EA自动交易编程入门到精通[通俗易懂]MT4-MQL4语言EA自动交易编程入门到精通

    2022年5月30日
    98
  • android点击按钮打开相册,打开相机的代码[通俗易懂]

    android点击按钮打开相册,打开相机的代码[通俗易懂]打开相册首先在onclick方法中:Intentintent=newIntent();intent.setType("image/*");//开启Pictures画面Type设定为imageintent.setAction(Intent.ACTION_GET_CONTENT);startActivityForResult(intent,REQUEST_CODE_SEL…

    2022年9月22日
    2
  • C语言基础:哪儿来的32766

    这篇文章通过一个简单的示例程序来介绍一下如何结合使用IDE来学习C语言。

    2022年4月4日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号