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 元组(Tuple)操作详解
Mar 11 Python
Python 执行字符串表达式函数(eval exec execfile)
Aug 11 Python
Python的Django框架中的Context使用
Jul 15 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
Jan 20 Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 Python
python自动发送邮件脚本
Jun 20 Python
python使用tomorrow实现多线程的例子
Jul 20 Python
python selenium 查找隐藏元素 自动播放视频功能
Jul 24 Python
python如何查看网页代码
Jun 07 Python
python 监控logcat关键字功能
Sep 04 Python
解决python3.6用cx_Oracle库连接Oracle的问题
Dec 07 Python
手把手教你配置JupyterLab 环境的实现
Feb 02 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 adodb介绍
2009/03/19 PHP
PHP读取大文件的几种方法介绍
2016/10/27 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
2019/11/19 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
遍历jquery对象的代码分享
2011/11/02 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
JS delegate与live浅析
2013/12/21 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
浅谈Python 对象内存占用
2016/07/15 Python
Python生成密码库功能示例
2017/05/23 Python
Python实现识别手写数字大纲
2018/01/29 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
python中字符串内置函数的用法总结
2018/09/13 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
英国电视和家用电器购物网站:rlrdistribution.co.uk
2018/11/20 全球购物
我们的节日元宵活动方案
2014/08/23 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
小程序实现筛子抽奖
2021/05/26 Javascript