Python 介绍一 —— PIL(Python Imaging Library)

一、安装
在官方网(http://www.pythonware.com/products/pil/)上可以找到软件安装包,在windows下安装很方便,要注意与Python的版本相匹配。
二、概述
PIL主要应用于图片处理方面,与GDAL不同,针对栅格图片,也就是常说的数字图像处理,而GDAL的处理数据包括矢量、栅格数据,与GIS结合相当紧密。
PIL的优势在于图片的数字处理,如:图片的大小,旋转,增强等。
三、主要模块及功能
1、Image
Fuctions and Methods:
open>>im=Image.open(“a.jpg”)
blend>>im=Image.blend(im1,im2,percent)   im=im1*(1-percent) +im2* percent
resize>>im=im.resize((200,200))
rotate>>im=im.rotate(45)
save>>im.save(“a.jpg”)
show>>im.show()
split>>im=im.split im[0], im[1], im[2]分别代表红、绿、蓝三个波段的数据。

2、The ImageChops Module
Fuctions and Methods:
invert>> im1=ImageChops.invert(im) im1为im灰度值的相反值,也就是im+im1=256
lighter>>im=ImageChops.lighter(im1,im2) 则im取im1,im2中灰度值较小的一个栅格。
daker>>与lighter相反。
add>>im=ImageChops.add(image1, image2, scale, offset) 则im= (image1 + image2) / scale + offset。

3、ImageDraw
Fuctions and Methods:
Draw>> ImageDraw.Draw(im) 表示下面开始对im进行编辑。
draw.line>> 画线,至少包括两个点。
    draw=ImageDraw.Draw(im)
    list=[(20,30),(300,600)]
draw.line(list)
表示在im上画一条线。
draw.polygon>>画面,至少有三个点。
draw=ImageDraw.Draw(im)
list=[(100,100),(300,500),(200,500)]
draw.polygon(list)
draw.rectangle>>画长方形,两个点。
draw=ImageDraw.Draw(im)
list=[(100,100),(300,500)]
draw.rectangle(list)
draw.text>> 在图片中显示文本,有可选项,用于字体调整。
    draw=ImageDraw.Draw(im)
text='I Love you.'
draw.text((100,200),text)

4、ImageEnhance
Fuctions and Methods:
enhance>>
im=Image.open("a.jpg")
enhancer=ImageEnhance.Sharpness(im)
im1=enhancer.enhance(0.5)
im1.show()
其中,Sharpness可用Contrast、Color、Brightness代替,这四者分别代表锐化、对比度、灰度、亮度。