首页 > 代码库 > Python图像处理PIL库简介

Python图像处理PIL库简介

搬运自本人博客:http://www.xgezhang.com/python_pil.html

最近用到一些简单的图像处理,这里简单介绍一下,Python Imaging Library (PIL)是PythonWare公司提供的免费的图像处理工具包,是python下的图像处理模块,支持多种格式,并提供强大的图形与图像处理功能。虽然在这个软件包上要实现类似MATLAB中的复杂的图像处理算法并不太适合,但是Python的快速开发能力以及面向对象等等诸多特点使得它非常适合用来进行原型开发。对于简单的图像处理或者大批量的简单图像处理任务,python+PIL是很好的选择。

PIL 具备(但不限于) 以下的能力:

  • 十种图档格式的读写能力。
  • 常见的JPEG, PNG, BMP, GIF, TIFF 等格式,都在PIL 的支援之列。 
  • 另外,PIL 也支援黑白、灰阶、自订调色盘、RGB true color、带有透明属性的RBG true color、CMYK 及其它数种的影像模式。 
  • 基本的影像资料操作:裁切、平移、旋转、改变尺寸、调置(transpose)、剪下与贴上等等。 
  • 强化图形:亮度、色调、对比、锐利度。 
  • 色彩处理。 

下面是一些基本的使用方法,导入PIL的Image库之后,我们首先打开一个图片,使用函数:

?
1
img= Image.open(‘filename‘)

查看图片格式、尺寸、模式等,并且可以查看图片:

?
1
2
3
4
printimg.format
printimg.size
printimg.mode
img.show()

格式转换非常简单,只需要将通过img.save(“xxx.bmp”),就可以把之前的格式的图转化成bmp格式,但save函数本身的作用是保存一个临时的图片文件,而格式转换功能则是通过convert()函数来实现:

我们可以对图像指定位置的区块进行裁剪,例如对坐上坐标(100,100)到右下坐标(400,400)部分的裁剪:

?
1
2
region= (100,100,400,400)
cutRegion= img.crop(region)

几何变换,包括改变尺寸,旋转:

?
1
2
3
out= img.resize(100,100)
out= img.rotate(45)
out= img.transpose(Image.ROTATE_180)

我们知道一副图像分为RGB三个通道,PIL库支持我们对单一通道进行操作,首先我们分出3通道的数值:

?
1
2
3
4
r,g,b= img.split()#分割成三个通道 
r.show() 
g.show() 
b.show()

这里只是一些基本用法,更多的请参阅handbook:http://effbot.org/imagingbook/

Python图像处理PIL库简介