Python PIL學習筆記(一)

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")
相關文章
相關標籤/搜索