PIL 提供了豐富的功能模塊:Image,ImageDraw,ImageEnhance,ImageFile 等等。最常用到的模塊是 Image, ImageDraw,ImageEnhance 這三個模塊。
1、Image模塊
最基本的模塊,每個Image對象對應了一幅圖像,基本的功能如下:
1 from PIL import Image
2 img = Image.open('pic.jpg')#打開一幅圖像
3 new_img = img.resize((128.128),Image.BILINEAR)#調整圖像大小
4 new_img.save('pic_r.jp')#保存為pic.jpg
5 rot_img = new_img.rotate(45)#圖片旋轉45度
6 rot_img.save('rot_img.jpg')
7 rot_img.save('rot_img.bmp')#保存為bmp文件,格式轉換如此簡單
8 print(rot_img.histogram())#打印所有256個灰度級像素點個數的統計值,以列表形式
2、ImageDraw模塊
提供基本的圖形繪制。可繪制直線、弧線、矩形、多邊形、橢圓、扇形等等。
from PIL import Image,ImageDraw
img = Image.open("pic.jpg")
draw = ImageDraw.Draw(img)#建立繪圖對象
width,height = img.size#獲取原始圖像大小
draw.line(((0,0),(width-1,height-1)),fill=255)#畫一條直線,(0,0)到(width-1,height-1),fill指線的顏色
draw.line(((0,height-1),(width-1,0)),fill=255)#同上
img.save("cross_line.jpg")#保存新圖像
draw.arc((0,0,width-1,height-1),0,360,fill=255)#(0,0,wifth-1,heght-1)指定了圓的范圍,0,360指定了圓的起始角度和終止角度,fill指線的顏色
img.save("circle.jpg")
3、ImageEnhance模塊
提供圖像增強功能。可以用來進行色彩增強、亮度增強、對比度增強、圖像尖銳化等等增強操作。所有操作都有相同形式的接口—— 通過相應類的 enhance 方法實現: 色彩增強通過 Color類的 enhance 方法實現;亮度增強通過 Brightness 類的 enhance 方法實現;對比度增強通過 Contrast 類的 enhance 方法實現;尖銳化通過 Sharpness 類的 enhance 方法實現。
from import Image,ImageEnhance
img = Image.open("pic.jpg")
brightness = ImageEnhance.Brightness(img)#獲取亮度增強對象
bright_img = brightness.enhance(2.0)#亮度增加兩倍
bright_img.save("bright.jpg")#保存
sharpness = ImageEnhance.Sharpness(img)#獲取圖片尖銳化對象
sharp_img = sharpness.enhance(7.0)#尖銳化
contrast = ImageEnhance.Contrast(img)#獲取對比度對象
contrast_img = contrast.enhance(2.0)#增加對比度
好吧,關於PIL的介紹就簡單的說到這,更多的功能請查看PIL-handbook.pdf
PIL庫可以方便的進行圖像的簡單處理,如果需要更為專業復雜的圖像圖形處理,請學習MATLAB.
最后附上PIL庫的下載地址http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil,可以支持python3的哦。