在Python中如何保存图像,如何将数组保存为图像

主要是看了TensorFlow中第一部分中看到的,查了查资料总结下如何将数组保存为图像
原程序如下

import scipy.misc
import os
#from PIL import Image
#把原始图片保存至MNIST_data/raw/下
save_dir="MNIST_data/raw/"
if os.path.exists(save_dir)is False:os.makedirs(save_dir)for i in range(20):image_array=mnist.train.images[i,:]#打印第i个image_array=image_array.reshape(28,28)filename=save_dir + 'mnist_train_%d.jpeg' % i#保存文件的格式print(filename)print(mnist.train.labels[i,:])#打印出标签scipy.misc.toimage(image_array,cmin=0.0,cmax=1.0).save(filename)#保存图像

程序运行结果如下:

 MNIST_data/raw/mnist_train_0.jpeg
[0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]
MNIST_data/raw/mnist_train_1.jpeg
[0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]
MNIST_data/raw/mnist_train_2.jpeg
[0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]
MNIST_data/raw/mnist_train_3.jpeg
[0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]
MNIST_data/raw/mnist_train_4.jpeg
[0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
MNIST_data/raw/mnist_train_5.jpeg
[0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]
MNIST_data/raw/mnist_train_6.jpeg
[0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
MNIST_data/raw/mnist_train_7.jpeg
[1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
MNIST_data/raw/mnist_train_8.jpeg
[0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
MNIST_data/raw/mnist_train_9.jpeg
[0. 0. 0. 0. 0. 0. 0. 0. 1. 0.]
MNIST_data/raw/mnist_train_10.jpeg
[1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
MNIST_data/raw/mnist_train_11.jpeg
[0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]
MNIST_data/raw/mnist_train_12.jpeg
[0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
MNIST_data/raw/mnist_train_13.jpeg
[0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
MNIST_data/raw/mnist_train_14.jpeg
[0. 0. 0. 0. 0. 0. 0. 1. 0. 0.]
MNIST_data/raw/mnist_train_15.jpeg
[1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
MNIST_data/raw/mnist_train_16.jpeg
[0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]
MNIST_data/raw/mnist_train_17.jpeg
[0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]
MNIST_data/raw/mnist_train_18.jpeg
[0. 0. 0. 0. 0. 0. 1. 0. 0. 0.]
MNIST_data/raw/mnist_train_19.jpeg
[1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
C:/Users/Administrator.SKY-20180518VHY/Desktop/pytorch code/pytorch/201811.07_tensorflow.py:63: DeprecationWarning: `toimage` is deprecated!
`toimage` is deprecated in SciPy 1.0.0, and will be removed in 1.2.0.
Use Pillow's ``Image.fromarray`` directly instead.

可以看到最下面写的在scipy1.2.0版本中将会被Image.fromarray取代原函数将删除,所以在此总结了下如保存图像的问题,主要针对如何将数组保存为图像,方法一:利用scripy库进行读取

for i in range(20):image_array=mnist.train.images[i,:]#打印第i个image_array=image_array.reshape(28,28)filename=save_dir + 'mnist_train_%d.jpg' % i#保存文件的格式print(filename)print(mnist.train.labels[i,:])#打印出标签scipy.misc.toimage(image_array,cmin=0.0,cmax=1.0).save(filename)#保存图像

函数为scipy.misc.toimage(ARR,高=255,低= 0,Cmin =无,Cmax为无,PAL =无,模式=无,channel_axis =无)
scipy.misc.toimage(image_array, cmin=0.0, cmax=…).save(‘outfile.jpg’)

方法2利用PIL读取

from PIL import Image
import matplotlib.pyplot as plt
img=Image.open('1.jpg')
print (img.size)  #图片的尺寸
print (img.mode)  #图片的模式
print (img.format) #图片的格式
img.save('2.png')

对于此处mnist数据的读取有

import os
from PIL import Image
#把原始图片保存至MNIST_data/raw/下
save_dir="MNIST_data/raw/"
if os.path.exists(save_dir)is False:os.makedirs(save_dir)
for i in range(20):image_array=mnist.train.images[i,:]#打印第i个image_array=image_array.reshape(28,28)filename=save_dir + 'mnist_train_%d.jpg' % i#保存文件的格式print(filename)print(mnist.train.labels[i,:])#打印出标签a=Image.fromarray(image_array)a=a.convert('RGB')#将其转换为RGB形式,或转化为灰度形式a.save(filename)

问题:python的PIL打开图片之后报错OSError: cannot write mode P as JPEG
解决:图片模式不对,需要转换

方法

from PIL import Imageim = Image.open('a.jpg')
im = im.convert('RGB')#im=im.convert('L')
im.save('b.jpg')

第三种方法:

from PIL import Image
import matplotlib
img=Image.open('1.jpg')
gray=img.convert('L')
matplotlib.image.imsave('name.png', gray)

在Python中如何保存图像相关推荐

  1. Python使用matplotlib保存图像时发生自动裁剪丢了部分标签信息解决方案(plt.savefig保存时丢失了部分标签字符)

    Python使用matplotlib保存图像时发生自动裁剪丢了部分标签信息解决方案(plt.savefig保存时丢失了部分标签字符) 目录

  2. Python中怎么读写图像

    Python中,主要使用的图像处理库是PIL(Python Imaging Library).opencv.scikit-image 1. 用PIL读写图片1 from PIL import Imag ...

  3. python rgb 图像_在Python中查找RGB图像的互补图像

    python rgb 图像 Complementary image is a transformed image such that it consists of complementary colo ...

  4. python热成像_在python中自动从图像中移除热/死像素

    基本上,我认为处理热像素的最快方法就是使用size=2中值滤波器.然后,噗,你的热像素消失了,你还杀死了其他各种高频传感器噪音从你的相机. 如果您真的只想删除热像素,那么替换时可以从原始图像中减去中值 ...

  5. python水印 resized_如何改进Python中的水印图像?

    我正在使用python为来自this的水印图像源代码import Image import ImageEnhance import random def _percent(var): "&q ...

  6. TypeError: keys must be str, int, float, bool or None, not tuple,解决 python 中 json 保存不了字典键值为 元组 的问题

    >>> a = {('0xFFFA', 11): 32, ('0x00F3', 1): 1, ('0xFFFA', 2): 42} {('0xFFFA', 1): 32, ('0x0 ...

  7. python rgb 图像_在Python中显示RGB图像的不同平面

    python rgb 图像 A colored image can be represented as a 3 order matrix. The first order is for the row ...

  8. python中.mat的图像数据怎么转换为.npy的数据

    .mat是MATLAB的二进制数据文件格式,而.npy是NumPy的二进制数据文件格式.要将.mat文件中的图像数据转换为.npy格式,你需要使用NumPy库和SciPy库. 首先,你需要安装这两个库 ...

  9. python中的保存文件,自用

    第一种情况:1.1 list保存到csv文件中并用,分割 feas = [] # 存入 file = open("**.csv",'ab') # 可以持续添加 np.savetxt ...

最新文章

  1. rust编程之道 pdf_深挖一篇嵌入式内核论文之后,我发现 Rust 正在悄悄改变世界...
  2. c语言符合运算符的运算顺序,二 如何学习C语言的运算符和运算顺序
  3. MATLAB中rand,randi,randn函数,及rand('state',0)和rand('seed',0)产生随机种子详解
  4. orange软件_Orange和戴尔技术公司合作 联合测试和开发5G和商业模式
  5. VTK:可编程源用法实战
  6. CDH集群调优:内存、Vcores和DRF
  7. 力扣--- 滑动谜题
  8. 蓝桥杯 ADV-120算法提高 6-17复数四则运算
  9. 惊呆了!这一操作将让NLP再次腾飞!
  10. 《圈圈教你玩USB》之 USB鼠标 描述符
  11. 【SEM】1 基本概念
  12. JAVA程序打包为EXE
  13. 极课大数据完成C轮融资,投资方为好未来
  14. 最具影响力30人,托起移动医疗千万市场
  15. Android 反编译利器,jadx 的高级技巧
  16. 使用密钥方式登录阿里云服务器
  17. Ubuntu查看一些版本 1
  18. win32程序窗口的创建
  19. 请问这个动态表格的表单内容如何写才能存入ACCess数据库中
  20. 使用xmanager实现图形界面化

热门文章

  1. Vivado 2020.1 开放下载,中文资料随贴奉送
  2. centos7 修改连接数_centos7+rsyslog+loganalyzer+mysql 搭建rsyslog日志服务器 - 夜空守望者2020...
  3. 高等数学(第七版)同济大学 习题11-2 个人解答
  4. 高等数学(第七版)同济大学 习题11-3 (后4题)个人解答
  5. 网络设备配置与管理————10、命令行接口
  6. 单片机程序生产烧录工具
  7. linux中的makefile文件
  8. 圆形百分比进度条效果
  9. Taro——taro安装及taro创建项目相关命令
  10. 人脸识别开源库face_recognition