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 相关文章推荐
wxPython 入门教程
Oct 07 Python
跟老齐学Python之编写类之二方法
Oct 11 Python
win10系统中安装scrapy-1.1
Jul 03 Python
python3库numpy数组属性的查看方法
Apr 17 Python
解决seaborn在pycharm中绘图不出图的问题
May 24 Python
详解Python 装饰器执行顺序迷思
Aug 08 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
使用python判断jpeg图片的完整性实例
Jun 10 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
python实现批量修改服务器密码的方法
Aug 13 Python
python 异步async库的使用说明
May 04 Python
Python安装使用Scrapy框架
Apr 12 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抽象工厂模式(Elgg)
2010/03/21 PHP
PHP实现C#山寨ArrayList的方法
2015/07/16 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
JavaScript While 循环基础教程
2007/04/05 Javascript
JavaScript中的noscript元素属性位置及作用介绍
2013/04/11 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
Web安全测试之XSS实例讲解
2016/08/15 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
解决AjaxFileupload 上传时会出现连接重置的问题
2017/07/07 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python比较两个图片相似度的方法
2015/03/13 Python
python在指定目录下查找gif文件的方法
2015/05/04 Python
centos6.4下python3.6.1安装教程
2017/07/21 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
使用gunicorn部署django项目的问题
2020/12/30 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
Internet体系结构
2014/12/21 面试题
LINUX下线程,GDI类的解释
2016/12/14 面试题
教师自荐信范文
2013/12/09 职场文书
工作分析计划书
2014/04/30 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
法定代表人授权委托书范文
2014/09/22 职场文书
爱心捐书倡议书
2015/04/27 职场文书
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
2021/06/30 SQL Server