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)
上一篇 2022年6月16日 下午11:30
下一篇 2022年6月16日 下午11:30


相关推荐

  • libtorrent分析

    libtorrent分析libtorrent 应该是目前最完善的使用 C 实现的 bittorrent 协议客户端开源开发库 有很多的开源 bittorrent 客户端都是基于这个开发库 libtorrent 本身使用了 boost sigc 这些库 其中 sigc 是 libtorrent 的基本框架 所以移除 sigc 的包依赖几乎不可能 另外 sigc 本身也依赖了某些库 所以 libtorrent 向嵌入式方向的发展难

    2026年3月18日
    2
  • Pytest(13)命令行参数–tb的使用

    Pytest(13)命令行参数–tb的使用前言pytest使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败。–tb=style参数可以设置报错的时候回溯打印内容,可以设置参

    2022年7月31日
    4
  • 虚拟化实践:云桌面安装

    虚拟化实践:云桌面安装

    2021年12月7日
    74
  • 版OpenClaw来了!三行代码就能部署

    版OpenClaw来了!三行代码就能部署

    2026年3月13日
    2
  • Matlab function函数如何使用

    Matlab function函数如何使用步骤 1 创建 m 文件 m 文件中用关键字 function 定义函数 定义函数的格式如下 function 输出变量 函数名称 输入变量 输入变量和输出变量可以是一个 也可以是多个 function 输出变量 函数名称 输入变量 注释 函数体 2 保存 m 文件时 一定要用函数名称保存 m 文件 举例如下 function a b c test d e f a

    2026年3月16日
    2
  • python安装包的离线安装方法

    python安装包的离线安装方法说明 python 的离线安装有时候 由于不同模块有很多依赖包 所以很容易出错 python 在线安装只需要 pipinstall 包名 会自动安装依赖包 所以一般不会出现安装问题 1 各种 Python 的安装包 主要提供 Linux 版本的后缀是 whl 和 tar gz 可以搜索相关的包 https pypi org 2 各种 Python 的安装包 主要提供 Windows 版本的后缀是

    2026年3月19日
    2

发表回复

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

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