1、圖片的讀取和格式保存python
一、讀取靜態圖spa
import Image, os im = Image.open('D:\\1.jpg') #打開圖片 im.save('new.jpg') #圖像對象的保存 print im.size, im.format, im.mode #查看圖片的各類屬性
二、讀取動態圖code
PIL默認載入圖像的第一幀,能夠利用seek和tell方法在各個幀之間移動。orm
im.seek(1) # skip to the second frame try: while 1: im.seek(im.tell() + 1) #當前幀 + 1 except EOFError: pass
2、圖片的簡單操做對象
一、切分圖片
box = (100, 100, 200, 200) #正方形對角點 region = im.crop(box) #在im中找到box大小的圖片,並賦給新的圖片對象
二、反轉、粘貼操做ip
region = region.transpose(Image.ROTATE_180) #反轉 im.paste(region, box) #將region放到im的box位置
三、調整大小,旋轉get
out_size = img.resize((128, 128))#resize成128*128像素大小。 out_rotate = img.rotate(45)#逆時針旋轉45度
四、RGB
it
每個RGB都是由三個通道的灰度圖疊加的,因此pil提供了將這三個通道分離的方法。io
這裏若是隻用split()會出現問題,應該先得到數據
im.getdata() r,g,b = im.split() #分離三個通道 #這裏能夠看一下分別的狀況 r.show() g.show() b.show() #融合三個通道 out_merge = Image.merge("RGB", (r, g, b)) #這裏能夠互換r, g, b
五、轉化灰度圖像
out_L = im.convert('L')
六、融合圖片
將兩張圖片大小相同的圖片融合
Image.blend(im1, im2, alpha) alpha參數大小決定im1----->im2,0時爲im1,1時爲im2。
im1 = Image.open('1.jpg') im2 = Image.open('jpg') #這裏能夠用上面的box切分圖片或者用resize轉換爲相同大小 out = Image.blend(im1, im2, 0.5)
3、經常使用濾鏡
一、增強濾鏡
import ImageFilter out_Detail = im.filter(ImageFilter.DETAIL)
或者直接用lambda表達式,增大像素點亮度
out_point = im.point(lambda i : i * 1.2)
還能夠用ImageEnhance模塊
import ImageEnhance en = ImageEnhance.Contrast(im) out = en.enhance(1.5)
二、邊緣化濾鏡
im = im.filter(ImageFilter.EDGE_ENHANCE)
三、轉化灰度圖像
im = im.convert("L")