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 相关文章推荐
Python入门篇之数字
Oct 20 Python
python基于twisted框架编写简单聊天室
Jan 02 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
Mar 04 Python
python实现简易内存监控
Jun 21 Python
python 实现A*算法的示例代码
Aug 13 Python
python安装pywin32clipboard的操作方法
Jan 24 Python
对python 通过ssh访问数据库的实例详解
Feb 19 Python
详解Python中is和==的区别
Mar 21 Python
使用Pycharm(Python工具)新建项目及创建Python文件的教程
Apr 26 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
python动态规划算法实例详解
Nov 22 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
Apr 01 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简单静态页生成过程
2008/03/27 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
PHP扩展开发入门教程
2015/02/26 PHP
php通过排列组合实现1到9数字相加都等于20的方法
2015/08/03 PHP
php微信支付接口开发程序
2016/08/02 PHP
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
js列举css中所有图标的实现代码
2011/07/04 Javascript
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
2011/10/31 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
JavaScript实现body内任意节点的自定义属性功能示例
2017/09/18 Javascript
AngularJS实现自定义指令及指令配置项的方法
2017/11/20 Javascript
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
Python yield 小结和实例
2014/04/25 Python
python使用内存zipfile对象在内存中打包文件示例
2014/04/30 Python
进一步探究Python中的正则表达式
2015/04/28 Python
由浅入深讲解python中的yield与generator
2017/04/05 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
python解析xml简单示例
2019/06/21 Python
python中的列表与元组的使用
2019/08/08 Python
python matplotlib中的subplot函数使用详解
2020/01/19 Python
python的launcher用法知识点总结
2020/08/07 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
Unix/Linux开发面试题
2016/08/16 面试题
css3 filter属性的使用简介
2021/03/31 HTML / CSS
Go timer如何调度
2021/06/09 Golang
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL