Python PIL圖片資料操作

std1984發表於2014-07-30
環境: Ubuntu 12.4

模式

1  1位畫素,黑和白,存成8位的畫素
L  8位畫素,黑白
P  8位畫素,使用調色盤對映到任何其他模式
RGB  3×8位畫素,真彩
RGBA  4×8位畫素,真彩+透明通道
CMYK  4×8位畫素,顏色隔離
YCbCr  3×8位畫素,彩色影片格式
I  32位整型畫素
F  32位浮點型畫素


匯入圖片處理庫
>>>from PIL import Image
載入圖片檔案
>>>im = Image.open('aa.jpeg')
輸出檔案的格式,大小,模式
>>> print im.format, im.size, im.mode
JPEG (510, 333) RGB

顯示圖片
>>> im.show()

白化圖片
>>> im.convert('1').show()

獲取圖片pixel資料
方法一:
>>> import numpy
>>> numpy.asarray(im)[100, 100]
array([254, 167, 175], dtype=uint8)

方法二:
>>> im.getpixel((100, 100))
(254, 167, 175)

方法三:

>>> im.load()[100, 100]
(254, 167, 175)


幾何轉變提供resize,rotate等方法,用以重定義圖片大小,對圖片進行旋轉等操作。
>>> im.resize((250, 150)).show()
>>> im.rotate(45).show()


圖片加強

濾鏡
ImageFilter模組提供了很多預定義的圖片加強濾鏡
>>>import ImageFilter

>>> im.filter(ImageFilter.DETAIL).show()

>>>import ImageEnhance
>>>ImageEnhance.Contrast(im).enhance(1.5).show()



通道
一個圖片包含一個或多個資料通道, 如果這些通道有相同的長度和寬度, 可以進入疊加
>>> r,g,b = im.split()
>>>r.sohw()
>>>g.show()
>>>b.show()
>>>im2 = Image.merge('RGB', (b,g,r))

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16582684/viewspace-1242676/,如需轉載,請註明出處,否則將追究法律責任。

相關文章