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位像素,彩色视频格式)