python保存图片的四个常用方法


Posted in Python onFebruary 28, 2022

前言

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()

python保存图片的四个常用方法

4.pytorch保存图片

save_image(real_img,os.path.join(save_img,f"{epoch}_real.jpg"),nrow=10,padding=2,pad_value=255)

参数:

  1. tensor:4D张量,形状为(B x C x H x W),分别表示样本数,通道数,图像高度,图像宽度
  2. nrow:每行的图片数量,默认值为8
  3. padding:相邻图像之间的间隔。默认值为2
  4. normalize:如果为True,则把图像的像素值通过range指定的最大值和最小值归一化到0-1。默认为False
  5. range:元组,用于指定最大值和最小值。默认使用图像像素的最大最小值。
  6. sacle_each:如果为True,就单独对每张图像进行normalize;如果是False,统一对所有图像进行normalize。默认为Flase
  7. pad_value:float,上述padding会使得图像之间留出空隙,默认为0

python保存图片的四个常用方法

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数据保存成图像文件。

总结 

到此这篇关于python保存图片的四个常用方法的文章就介绍到这了,更多相关python保存图片方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python3 与python2 异常处理的区别与联系
Jun 19 Python
Python2.7读取PDF文件的方法示例
Jul 13 Python
python使用os.listdir和os.walk获得文件的路径的方法
Dec 16 Python
python实现隐马尔科夫模型HMM
Mar 25 Python
Python实现多级目录压缩与解压文件的方法
Sep 01 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
python多线程并发及测试框架案例
Oct 15 Python
python实现简单图书管理系统
Nov 22 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
详解python的super()的作用和原理
Oct 29 Python
Python getsizeof()和getsize()区分详解
Nov 20 Python
Python内置的数据类型及使用方法
Apr 13 Python
Python可视化学习之seaborn调色盘
Python可视化学习之matplotlib内置单颜色
Python可视化学习之seaborn绘制矩阵图详解
Python matplotlib可视化之绘制韦恩图
Python语言中的数据类型-序列
Feb 24 #Python
浅析python中特殊文件和特殊函数
Feb 24 #Python
Python中字符串对象语法分享
Feb 24 #Python
You might like
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
vue项目中使用Svg的方法
2018/10/24 Javascript
vue控制多行文字展开收起的实现示例
2019/10/11 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
JavaScript实现拖动对话框效果的实现代码
2020/10/12 Javascript
从表单校验看JavaScript策略模式的使用详解
2020/10/17 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
使用Python抓取模板之家的CSS模板
2015/03/16 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
python实现网页录音效果
2020/10/26 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
python中使用np.delete()的实例方法
2021/02/01 Python
html5构建触屏网站之网站尺寸探讨
2013/01/07 HTML / CSS
html5视频自动横过来自适应页面且点击播放功能的实现
2020/06/03 HTML / CSS
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
MYSQL支持事务吗
2013/08/09 面试题
电子商务网站的创业计划书
2014/01/05 职场文书
婚礼证婚人证婚词
2014/01/13 职场文书
建筑工程毕业生自我鉴定
2014/01/14 职场文书
读群众路线心得体会
2014/03/07 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
小学生通知书评语
2014/12/31 职场文书
小学课改工作总结
2015/08/13 职场文书
学习经验交流会演讲稿
2015/11/02 职场文书
初中地理教学反思
2016/02/19 职场文书
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis