RGB色彩描述模式
描述圖像的色彩模式有很多,比如RGB、HSB、CMYK,它們分別對應不同的描述媒介。其中RGB(紅綠藍,既光的三原色)是基於電子屏幕的一種色彩描述模式
電子圖像一般以像素為單位描述寬高,每個像素的顏色由R、G、B三個分量決定,每個分量取值范圍是0~255(RGB圖像是基於8位的圖像)
灰度化
圖像的灰度化處理,即根據算法讓R=G=B
from PIL import Image
image = Image.open('path')
Image.convert('L')
上面的代碼會將圖像轉換為8位的灰度圖像(只有黑、白),每個像素的灰度值范圍在0~255;
from PIL import Image
image = Image.open('path')
Image.convert('1')
上面的代碼會將圖像轉換為1位的灰度圖像(只有黑、白),每個像素的灰度值范圍在0-1;
二值化處理
二值化處理即灰度圖的灰度值只有兩個取值
我們通常使用Image.point方法進行二值化處理
Image.point(lut, mode=None)
lut
可以是長度為256的查找列表,也可以是lambda表達式
處理灰度圖時,該方法使用每個像素的灰度值作為查找列表的索引進行查找,並將索引結果賦給灰度值;如果使用lambda表達式,會將灰度值作為參數傳入匿名函數中,並將結果賦給相應的像素
附Pillow模式描述
- 1 (1位黑白像素,每字節存儲一個像素)
- L (8位像素,黑白)
- P (8位像素,使用調色板映射到任何其他模式)
- RGB (3x8位像素,真彩色)
- RGBA (4x8位像素,帶透明蒙版的真彩色)
- CMYK (4x8位像素,分色)
- YCbCr (3x8位像素,彩色視頻格式)