使用PIL.Image模块和matplotlib.pyplot进行图片的打开,显示和存储
2018-02-22 22:42
1276 查看
一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点:1、不开源,价格贵2、软件容量大。一般3G以上,高版本甚至达5G以上。3、只能做研究,不易转化成软件。因此,我们这里使用python这个脚本语言来进行数字图像处理。要使用python,必须先安装python,一般是2.7版本以上,不管是在windows系统,还是linux系统,安装都是非常简单的。要使用python进行各种开发,就必须安装对应的库。这和matlab非常相似,只是matlab里面叫工具箱(toolbox),而python里面叫库或包。安装这些库,一般都是使用pip来安装。使用python进行数字图片处理,还得安装Pillow包。虽然python里面自带一个PIL(python images library), 但这个库现在已经停止更新了,所以使用Pillow, 它是由PIL发展而来的。
figure默认是带axis的,如果没有需要,我们可以关掉
pip install Pillow一、图片的打开与显示
from PIL import Image img=Image.open('d:/dog.png') img.show()虽然使用的是Pillow,但它是由PIL fork而来,因此还是要从PIL中进行import. 使用open()函数来打开图片,使用show()函数来显示图片。这种图片显示方式是调用操作系统自带的图片浏览器来打开图片,有些时候这种方式不太方便,因此我们也可以使用另上一种方式,让程序来绘制图片。
from PIL import Image import matplotlib.pyplot as plt img=Image.open('d:/dog.png') plt.figure("dog") plt.imshow(img)
plt.show()
plt.imsave(r'C:\Users\Administrator\Desktop\333.jpg',img) #这里可以把img改为img对应数组
import numpy as np import matplotlib.pyplot as plt from PIL import Image a = Image.open(r'C:\Users\Administrator\Desktop\333.jpg') b= np.array(a) plt.figure('nihao') plt.subplot(2,2,1) plt.imshow(a) plt.title('这是图片1') plt.subplot(2,2,2) plt.imshow(b+80) plt.title('这是图片2') plt.show()这种方法虽然复杂了些,但推荐使用这种方法,它使用一个matplotlib的库来绘制图片进行显示。matplotlib是一个专业绘图的库,相当于matlab中的plot,可以设置多个figure,设置figure的标题,甚至可以使用subplot在一个figure中显示多张图片。matplotlib 可以直接安装
pip install matplotlib
figure默认是带axis的,如果没有需要,我们可以关掉
plt.axis('off')打开图片后,可以使用一些属性来查看图片信息,如
print img.size #图片的尺寸 print img.mode #图片的模式 print img.format #图片的格式显示结果为:
(558, 450) RGBA PNG二、图片的保存
img.save('d:/dog.jpg')就一行代码,非常简单。这行代码不仅能保存图片,还是转换格式,如本例中,就由原来的png图片保存为了jpg图片。
相关文章推荐
- matplotlib pyplot 输出eps图片打开后显示空白
- matplotlib.pyplot与cv2、Image.open 读取图片显示的差异
- python 1: 解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题
- 使用matplotlib中的pyplot报错显示缺少_tkinter
- OpenCV for Python [2]使用Matplotlib显示图片
- 使用matplotlib时pyplot.show()不显示图像的问题
- matplotlib pyplot 中文显示问题
- 初级cnn研究辅助:python的matplotlib显示图片
- Matplotlib简介和pyplot的简单使用
- Matplotlib简介和pyplot的简单使用——文本标注和箭头
- python画图包seaborn和matplotlib中文字体显示(针对windows系统,,使用ipython notebook)
- Linux下python matplotlib.pyplot在图像上显示中文的问题
- Matplotlib简介和pyplot的简单使用——局部放大图
- Matplotlib简介和pyplot的简单使用——Artists
- matplotlib中画图显示中文,但保存为图片后中文乱码
- ipython下matplotlib不显示图片
- 在Linux中使用matplotlib进行科学画图
- CenOS6.5上matplotlib的show函数不能显示图片的问题
- 初级cnn研究辅助:python的matplotlib显示图片 之 按钮和触发事件
- Matplotlib简介和pyplot的简单使用——subplot