python保存图片的四个常用方法
作者:Mr_寒路 时间:2023-10-03 15:06:37
前言
python中图像处理相关库有很多,这里简单介绍PIL、cv2、scipy.imageio 、matplotlib.image、skimage等常用库,其中PIL库使用最方便,cv2库功能最强大。下面分享保存图片的常用方法
1.PIL的保存图片方法
path = r"./001.jpg" #图片路径
img = Image.open(path) #打开图片
img.save("1.jpg") #将图片保存为1.jpg
2.opencv保存图片
path = r"./001.jpg" #图片路径
#img = cv.imdecode(np.fromfile("动漫人物_0.jpg",np.uint8))#含有中文路径的图片打开
img = cv2.imread(path) #读取图片
cv2.imwrite("1.jpg",img) #将图片保存为1.jpg
3.Matplotlib保存图片的方法
import matplotlib.pyplot as plt
import cv2
import os
images_path = "./minist_img"
for i,img_name in enumerate(os.listdir(images_path)):
img_path = os.path.join(images_path,img_name)
img = cv2.imread(img_path) #numpy的数组形式,色彩空间为BGR
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #
plt.subplot(2,2,i+1),plt.imshow(img)
plt.savefig("./minist.jpg")
plt.show()
4.pytorch保存图片
save_image(real_img,os.path.join(save_img,f"{epoch}_real.jpg"),nrow=10,padding=2,pad_value=255)
参数:
tensor:4D张量,形状为(B x C x H x W),分别表示样本数,通道数,图像高度,图像宽度
nrow:每行的图片数量,默认值为8
padding:相邻图像之间的间隔。默认值为2
normalize:如果为True,则把图像的像素值通过range指定的最大值和最小值归一化到0-1。默认为False
range:元组,用于指定最大值和最小值。默认使用图像像素的最大最小值。
sacle_each:如果为True,就单独对每张图像进行normalize;如果是False,统一对所有图像进行normalize。默认为Flase
pad_value:float,上述padding会使得图像之间留出空隙,默认为0
matplotlib 扩展:
1.图像缩放、显示
from scipy import misc
lena_new_sz = misc.imresize(img, 0.5) # 第二个参数如果是整数,则为百分比,如果是tuple,则为输出图像的尺寸
plt.imshow(img_new_sz)
plt.axis('off')
plt.show()
2. 将np.array保存为图像、直接保存np.array
# 2.1 np.array=>image file
from scipy import misc
misc.imsave('img_new_sz.png', img_new_sz)
"""
from scipy import misc
# load image
lena = misc.imread('lena.png')
# <type 'numpy.ndarray'>
type(lena)
# lena.shape, lena.dtype
"""
# 2.2 np.array=>np data file
import numpy as np
np.save('img_new_sz', img_new_sz) # 会在保存的名字后面自动加上.npy
img = np.load('img_new_sz.npy') # 读取前面保存的数组
注意: np.array数据可以通过np.save函数直接保存在磁盘上,扩展名为.npy, 通过np.load函数直接恢复; scipy.misc提供了对numpy.array格式图像的处理函数,特别是misc.imsave函数可以直接将np.array数据保存成图像文件。
总结
来源:https://blog.csdn.net/weixin_47873308/article/details/113627733
标签:python,保存,图片
0
投稿
猜你喜欢
CentOS 7安装MySQL的详细步骤
2024-01-25 19:59:17
Python中列表的基本操作汇总
2021-08-20 23:21:27
Python实现线程池代码分享
2021-09-24 18:13:43
python中实现迭代器(iterator)的方法示例
2021-07-12 19:32:41
Python统计词频并绘制图片(附完整代码)
2022-01-01 09:28:24
Python从csv文件中读取数据及提取数据的方法
2021-01-26 07:12:44
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2023-07-20 09:54:01
深入解析MySQL的事务隔离及其对性能产生的影响
2024-01-27 11:17:07
5种禁用html页面的缓存方法
2007-09-30 12:12:00
基于Python3制作一个带GUI界面的小说爬虫工具
2023-04-02 17:33:04
background-clip/origin一则运用
2008-04-15 14:45:00
vue3中给数组赋值丢失响应式的解决
2024-05-22 10:44:41
Python调用腾讯API实现人脸身份证比对功能
2023-11-27 20:18:06
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2023-03-22 19:15:40
asp实现新评论自动发短信提示的代码
2011-03-07 10:38:00
使用python从三个角度解决josephus问题的方法
2022-02-22 02:19:55
php打包压缩文件之ZipArchive方法用法分析
2024-05-11 09:46:05
Oracle关于时间/日期的操作
2009-02-26 10:37:00
Python的Flask框架应用调用Redis队列数据的方法
2023-04-20 14:14:38
python 最简单的实现适配器设计模式的示例
2021-10-14 12:07:59