Matplotlib图像读取和输出及jpg、png格式对比,及透明通道alpha设置

本文主要是介绍Matplotlib图像读取和输出及jpg、png格式对比,及透明通道alpha设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

图像像素值

图像像素值一般size为3,也就是通道数,分别代表R,G,B,如果只有单一 一个值则表示灰度值,也就是说一张二维图片,当长和宽都为1080时,那么若是灰度图像,图像尺寸为(1080,1080,1)若是RGB图像则为(1080,1080,3),

jpg、png图像格式

jpg图像的灰度值范围和RGB范围为[0,255],数值类型为uint8,也就是无符号整数

png图像的灰度值范围和RGB范围在正常的[0,255]范围外,可以取[0,1],数值类型为float,在图像保存的时候会自动映射回[0,255]

jpg图像为有损压缩,在保存时可能会丢失图像细节

png图像为无损压缩

jpg不带有alpha透明通道

png带有alpha透明通道,也就是在传统rgb通道后还有一个alpha通道数

例如原来的例子中rgb图像的形状为(1080,1080,3),带有alpha通道就为(1080,1080,4)

plt.imshow()

plt.imshow()的参数为图像的像素矩阵,作用为将像素值输出为图像

import numpy as np
import matplotlib.pyplot as pltfigure1 = plt.figure()
image1 = np.random.random(size=(100, 100, 3))
plt.imshow(image1)
figure1.savefig('plot1.png')
plt.show()figure2 = plt.figure()
image2 = np.random.randint(0,255,size=(100, 100, 3))
figure2.savefig('plot2.jpg')
plt.imshow(image2)
plt.show()

这里分别初始化了两个像素矩阵,但是数值类型不同,分别为整形和浮点型

plot1

plot2

保存带有alpha透明通道的png图像

import numpy as np
import matplotlib.pyplot as pltimage1 = np.random.random(size=(100,100,4))
image1[:,:,3]=0.2plt.imshow(image1)
plt.savefig('transparent.png')
plt.show()

 

上述代码中的透明通道统一设置为了0.2,通明通道的取值范围为[0,1],值越小越透明,关于alpha值设置的详细配置信息可以参考我的另一篇博客Matplotlib颜色透明度设置-CSDN博客 

plt.imread()

plt.imread()的作用是读取本地图片并返回ndarray格式的数组,参数为图片路径

import numpy as np
import matplotlib.pyplot as pltimage1 = plt.imread('plot1.png')
image2 = plt.imread('plot2.jpg')print(type(image1),image1.dtype)
print(type(image2),image2.dtype)# <class 'numpy.ndarray'> float32
# <class 'numpy.ndarray'> uint8

 可以看到读取出来的数值类型为float和uint,对应了之前保存的格式

这篇关于Matplotlib图像读取和输出及jpg、png格式对比,及透明通道alpha设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1146819

相关文章

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

PostgreSQL 默认隔离级别的设置

《PostgreSQL默认隔离级别的设置》PostgreSQL的默认事务隔离级别是读已提交,这是其事务处理系统的基础行为模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一 默认隔离级别概述1.1 默认设置1.2 各版本一致性二 读已提交的特性2.1 行为特征2.2

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

mtu设置多少网速最快? 路由器MTU设置最佳网速的技巧

《mtu设置多少网速最快?路由器MTU设置最佳网速的技巧》mtu设置多少网速最快?想要通过设置路由器mtu获得最佳网速,该怎么设置呢?下面我们就来看看路由器MTU设置最佳网速的技巧... 答:1500 MTU值指的是在网络传输中数据包的最大值,合理的设置MTU 值可以让网络更快!mtu设置可以优化不同的网