python读取和保存图片的三种方法

article/2025/8/27 9:59:15

python读取和保存图片

opencv

import cv2
#load
img = cv2.imread('0.png')
#show
cv.imshow('title', img)
#save
cv2.imwrite('1_cv2.png',img)

可以看到opencv读取的图片数据类型是uint8格式(属于numpy),uint8是专门用于存储各种图像的(包括RGB,灰度图像等),范围是从0–255。
读取的形状为(H,W,C),BGR
读取img后的img属性

matplotlib

import matplotlib.pyplot as plt
# load
img = plt.imread('0.png') 
#读取后的dtype为float32(属于numpy),范围是[0,1]
#读取后的形状是(H,W,C),RGB
# show
plt.imshow(img)
plt.axis('off')
plt.show()
# save
#plt.imsave('1_plt.png',img)

还有一个保存方式叫plt.savefig(),但是使用这种方式保存的时候,保存的图片会显示空白,参考了plt.savefig保存图片一片空白或者显示内容不完整、错乱后把plt.savefig()放在了show的前面得以解决。

import matplotlib.pyplot as plt
# load
img = plt.imread('0.png') 
#读取后的shape为
# show
plt.imshow(img)
plt.axis('off')
plt.savefig('1_plt2.png')
plt.show()

PIL

from PIL import Image
# load
img = Image.open('0.png')
#读取后形状是(W,H)
# show
img.show()
#save
img.save('1_pil.png')

但是使用PIL读取的图片,matplotlib保存的图片会显示错误。
原因是PIL读取的图片格式是PIL.JpegImagePlugin.JpegImageFile,形状为(W,H)
要先把格式转化为numpy,不管是plt还是cv2.imshow,在python中只认numpy.array

总结

读取图片的方式有3种,分别是matplotlib读取图片、opencv读取图片和PIL读取图片。在读取图片后,可以统一使用matplotlib工具包显示图片。但是需要注意的是 opencv 读取图片的情况,读取的图片是BGR通道排序,需要转为RGB通道。
另外注意,matplotlib使用时,plt.imshow(image)如果没有显示图片,在其后面加上plt.show()


http://chatgpt.dhexx.cn/article/B63ngcgH.shtml

相关文章

python读取与保存图片的exif信息

图片的exif文件格式中保存了很多信息,比如GPS经纬度,高度,焦距等信息。 在图片的属性中可以看到这些信息: 我们可以使用python来进行exif数据的读取和保存。 1. 首先安装piexif pip3 install piexif 2.exif数据读取代码 impo…

Python 保存图片的两种方法

有时我们需要保存我们的图片,那我们可以怎么保存呢? 可参考下列保存的两种方法: 第一种:cv2.imwrite() 示例: # 方法一 : import cv2 cv2.imwrite("imwrite_pic.jpg", cv2.imread(pic.jpg)) 第二种:i…

python图片存取四种常用方法记录

一、PIL(Python Imaging Library)#python图像处理库 from PIL import Image import numpy as np #数值计算扩展包I Image.open("1.jpg") #读入图片 I.show() #显示图片 print(I) …

python保存图片的常用方法

保存图片的常用方法 1.PIL的保存图片方法 path r"./001.jpg" #图片路径 img Image.open(path) #打开图片 img.save("1.jpg") #将图片保存为1.jpg2.opencv保存图片 path r"./001.jpg" #图片路径 #img cv.imdecode(np.fromfi…

本地及服务器如何清除redis缓存

1、本地环境清除redis缓存 我用的redis管理工具是RedisDesktopManager,安装可参考https://blog.csdn.net/lihua5419/article/details/80661826 清除缓存命令为flushall,如下图所示: 2、服务器上清除redis缓存 我们服务器用的是Linux系统&a…

Redis 缓存删除策略

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 Redis是一个key-value存储系统。和Memcached类似&#xf…

Linux下redis清理缓存

1、先确保redis进程存在: 2、进入redsi下面的bin目录; 3、执行:执行./redis-cli登陆; 4、查看当前数据库key的数量,执行:dbsize命令 (如果出现(error) ERR unknown command ‘(error)’ &#x…

利用Redis进行数据缓存

1. 引言 缓存有啥用? 降低对数据库的请求,减轻服务器压力提高了读写效率 缓存有啥缺点? 如何保证数据库与缓存的数据一致性问题?维护缓存代码搭建缓存一般是以集群的形式进行搭建,需要运维的成本 2. 将信息添加到…

Linux下如何清空Redis缓存

1.首先进到redis的安装目录,进到src目录下,找到redis-cli 2.首先用账号密码的方式进入到redis的服务端 ./redis-cli -h 127.0.0.1 -p 6379 进去后会出现下面的界面ip:port> 然后,输入密码进行鉴权>auth "yourpassword"&a…

redis如何清空指定缓存和所有缓存

Windows环境下使用命令行进行redis缓存清理 1.访问redis根目录 cd D:\development_tools\redis64-3.0.501 2.登录redis:redis-cli -h 127.0.0.1 -p 6379 3.查看所有key值:keys * 4.删除指定索引的值:del key 5.清空整个 Redis 服务器的数据&…

redis删除缓存

首先下载一个redis可视化管理页面:RedisDesktopManager, 1、点击连接到redis服务器 2、 填写连接Ip地址,端口(默认6379),有密码填写密码,没用密码就不用填写了,然后点击测试连接,连接成功后,可以找到自己…

如何清理Redis中的缓存

首先在cmd模式下进入redis的目录, 然后使用 redis-cli -p 6379(指定进入的端口号,本人的端口号为6379) 进入该端口的redis数据库之后有以下两种清空缓存的命令 1.清空当前redis数据库缓存flushdb flushdb 2.清空整个redis缓存flushall flushall

redis如何清空缓存

前言: 如果你们的项目用到redis啦,虽然设置了过期时间,但有时候修改bug,仍然需要及时清空缓存,去读数据库的数据,所以这篇文章讲解如何在linux下清除redis的缓存。 正文: 1.首先进到redis的安…

redis如何清空当前缓存和所有缓存

Windows环境下使用命令行进行redis缓存清理 1、redis安装目录下输入cmd 2、redis-cli -p 端口号 3、flushdb 清除当前数据库缓存 4、flushall 清除整个redis所有缓存 客户端直接 右键即可:

redis 清理缓存

----windos 方法1,重启redis也能请缓存。 方法2,清缓存前确保redis-server.exe进程已经启动,然后打开redis-cli.exe,跳出的CMD里面输入flushall,显示OK就可以了。 flushall:清空整个redis 服务器的数据(删除…

redis清理缓存

redis如何清空缓存 如果你们的项目用到redis啦,虽然设置了过期时间,但有时候修改bug,仍然需要及时清空缓存,去读数据库的数据,所以这篇文章讲解如何清除redis的缓存。 正文 1.首先进到redis的安装目录,进…

WPS为公式编号

首先打开标尺,看一下中间位置(放公式),和后面位置(放编号)的刻度是多少,我中间位置目测是17个字符,后面位置是38个字符 为你的公式新建一个样式 这里主要注意两个地方,“制表位”和“段落”…

mathtype自动设置公式编号及更新

在写论文的时候难免要用到mathtype,mathtype相对来说还是好用的 使用mathtype的好处之一是可以利用mathtype自动设置公式编号及更新,非常方便,而且可以引用公式,在删除公式时不用手动更新公式编号,mathtype可以自动帮你…

使用MathType为公式自动编号

使用MathType为公式自动编号 公式格式设置修改章节号 公式格式设置 首先设置编号格式,在这里我们先将公式设置成(1-1-1)这样的,后续再讲如何修改成(1-1),看这两者有什么区别; 插入…

Mathtype怎么设置公式编号 ?公式编号怎么自动更新?删除新增公式后编号自动更新?

文章目录 1 公式编号设置2 插入公式3 公式编号怎么自动更新3.1 正常插入公式 编号自动更新3.2 文章中 增加公式 编号自动更新3.3 文章中 删除公式 编号自动更新3.4 文中 引用的公式编号 及 自动更新 以插入下面公式为例, 假如现在在第二单元,插入第一公式…