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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • AWK awk xxx xxx[通俗易懂]

    AWK awk xxx xxx[通俗易懂]awk’BEGIN{a=5;a+=5;printa}’10

    2022年8月22日
    3
  • Nginx-使用以及几种负载均衡算法

    Nginx-使用以及几种负载均衡算法文章目录Nginx(enginex)Nginx能做什么?1.正向代理2.反向代理3.HTTP服务器(动静分离等)4.负载均衡负载均衡模块-upstreamupstream负载均衡算法:轮询(roundrobin)加权轮询(WeightedRoundRobin)IP_Hashfair(第三方)url_hash(第三方)Nginx配置文件Nginxlocation匹配规则Nginx(enginex)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3

    2022年10月9日
    0
  • 考拉小巫的英语学习日记

    考拉小巫的英语学习日记考拉小巫的英语学习日记读书笔记、、、小巫英语笔记 在无比枯燥和受挫的时候,我是如何把自学计划坚持到底的;在这本书里,我想分享我考过的所有英语考试的备考方案、计划安排、所用书籍及资料,想分享

    2022年8月5日
    6
  • 用python编写猴子吃桃问题_人工智能猴子摘香蕉

    用python编写猴子吃桃问题_人工智能猴子摘香蕉一个房间里,天花板上挂有一串香蕉,有一只猴子可在房间里任意活动(到处走动,推移箱子,攀登箱子等)。设房间里还有一只可被猴子移动的箱子,且猴子登上箱子时才能摘到香蕉,问猴子在某一状态下(设猴子位置为A,香蕉位置在B,箱子位置为C),如何行动可摘取到香蕉。此问题的前提是猴子只有站在箱子上才能拿到香蕉,因此,需要首先让猴子找到箱子,再找到香蕉,并将箱子搬到香蕉下面。2.1使用语义网络实现猴子摘香蕉的知识表示2.2用java实现猴子摘香蕉Monkey类:12345678910111213141516171

    2022年9月25日
    1
  • tail 命令详解

    tail 命令详解一、tail命令介绍tail命令可以将文件指定位置到文件结束的内容写到标准输出。如果你不知道tail命令怎样使用,可以在命令行执行命令tail–help就能看到tail命令介绍和详细的参数使用介绍,内容如下(我帮大家翻译了一下)。[root@yanggongzi~]#tail–helpUsage:tail[OPTION]…[FILE]…Printthelast10linesofeachFILEtostandardoutput.Withmore

    2022年6月4日
    42
  • java.lang.ClassCastException android.widget.RelativeLayout LayoutParams 异常

    java.lang.ClassCastException android.widget.RelativeLayout LayoutParams 异常1、在xml布局文件如下所示:<RelativeLayoutandroid:layout_width=”match_parent”android:layout_height=”wrap_content”android:background=”@android:color/dar…

    2022年7月17日
    11

发表回复

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

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