1. 程式人生 > >Python PIL學習筆記

Python PIL學習筆記

一、介紹

PIL (Python Imaging Library)是 Python 的第三方擴充套件庫,常用來做影象處理。

二、安裝

首先,安裝PIL,按照http://www.pythonware.com/products/pil/index.htm下載地址得到一個執行檔案,直接執行安裝的時候會出現下圖的情況,報錯2.7版本的Python沒有安裝,可是我都用了這麼久的Python了,肯定是有安裝的。網上查了一下問題,官網上面的PIL都是32bit的,所以,沒有辦法找到安裝Python的路徑。

 

 

安裝成功後測試:import Image

如果沒有報錯就證明安裝成功了,

三、操作測試:

1、開啟圖片:

import Image
im = Image.open(r'D:\1.jpg')

2、檢視圖片資訊

開啟圖片之後,我們可以檢視一些圖片的資訊,如im.format,im.size,im.mode。

format是識別影象的格式,size返回一個元組,畫素值的長和寬,測試的圖片的mode返回了一個RGB,對應紅綠藍三個通道的顏色,此外,mode返回的格式還有可能是1(1位畫素,黑和白,存成8位畫素),L(8位畫素,黑白)

RGB色彩模式的為影象中每一個畫素的RGB分量分配一個0~255(8位表示,2^8=255)範圍的強度值,RGB影象只是用三種顏色,可以使他們按照不同的比例混合,在螢幕上呈現255*255*255種顏色。

print im.format,im.size,im.mode

得到的結果:JPEG (350, 267) RGB

3、顯示圖片

呼叫im.show()會在圖片的檢視工具中顯示當前操作的image物件。


4、拷貝,黏貼,合併

import Image
im = Image.open(r'D:\1.jpg')
box = (70,0,240,200)#設定要拷貝的地區的大小,裡面含有四個元素,為左上右下
region = im.crop(box)#按照box的大小拷貝到region裡面
region.show()

拷貝到region裡面的效果(相當於截圖):


import Image
im = Image.open(r'D:\1.jpg')
box = (100,100,500,500)
region = im.crop(box)
region.show()
box = (70,0,240,200)
region = im.crop(box)
region = region.transpose(Image.ROTATE_180)#旋轉180度
im.paste(region,box)#把改造後的圖片放到原本的地方
im.show()

得到的結果:


5、RGB分離與重組

每一個RGB都是有三個通道的灰度圖疊加的,PIL提供了講著三個通道分離的方法:

import Image
im = Image.open(r'D:\1.jpg')
r,g,b = im.split()
r.show()
g.show()
b.show()

其中,r的效果圖:


將分離的三色通道重組:

import Image
im = Image.open(r'D:\1.jpg')
r,g,b = im.split()
im = Image.merge('RGB',(r,b,g))#把b和g的位置換了一下
im.show()

得到的效果圖:


6、幾何轉變

import Image
im = Image.open(r'D:\1.jpg')
im = im.rotate(45)#逆時針旋轉45度
im.show()

上文有用到transpose效果一樣,只是可以自己定義旋轉的方式。效果如下:


7、濾鏡

PIL當中也支援濾鏡,通過這些預定義的濾鏡,可以方便的對影象進行一些過濾操作,可以降低將來處理的複雜度,

import Image
import ImageFilter
im = Image.open(r'D:\1.jpg')
im1 = im.filter(ImageFilter.BLUR)#模糊
im1.show()
im = im.filter(ImageFilter.CONTOUR)#輪廓
im.show()

得到的模糊效果圖:


得到的輪廓效果圖:


8、對每個畫素點進行操作

import Image
import ImageFilter
im = Image.open(r'D:\1.jpg')
im1 = im.point(lambda i : i*1.2)#匿名函式
im1.show()

對每個畫素點做了加強處理:

 

 總算做完了,感覺用動漫人物做處理,效果不是很好,下次選張風景的圖片~

Reference