一提到数字图像处理,可能大多数人会想到matlab,但是matlab有自身的一些缺点:
1.不开源,价格贵;
2.软件容量大。一般3GB以上,高版本甚至达到5GB以上。
3.只易做研究,不易转化成软件。
因此,我倾向于学习python来进行图像的处理工作。要使用python,首先要先安装python,一般是在2.7版本以上,不管是在windows系统,还是在linux系统,安装工作都是非常简单的。
我们要使用python进行各种开发,就必须安装对应的库或者。就像我们在matlab里安装的工具箱(toolbox)一样。安装这些库,一般使用pip。
使用python进行数字图像处理,还得安装Pillow包。虽然python里面自带一个PIL(python image library),但是这个库现在已经停止更新了,所以使用Pillow,它是由PIL发展而来的。
pip install Pillow
因为我安装了Anaconda,所以省去了这一步。关于Anaconda,会在后续有一节写一个专题。
用pip list 查看Anaconda里面已经有的安装包,发现已经有Pillow。
(后面不再赘述这一条件)
一图片的打开和显示
from PIL import Image
img=Image.open('e:/a.png')
img.show()
虽然使用的是Pillow,但是它是由PIL fork而来,因此还是要从PIL中进行import。使用open()函数来打开图片,使用show()函数来显示图片。
上述方法有些时候不太方便,因此我们也可以使用上另一种方式,让程序来绘制图片。
from PIL import Image
import matplotlib.pyplot at plt
img=Image.open('e:/a.png')
plt.figure("a")
plt.imshow(img)
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 #图片格式
显示结果为:
(690, 1226)
RGB
JPEG
二图片的保存
img.save('e:/b.jpg')
就一行代码,这行代码不仅能够保存图片,还能转换格式。如这次就由原来的png格式保存为jpg格式。