图像二值化处理

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位像素,彩色视频格式)
原文地址:https://www.cnblogs.com/weixia-blog/p/12833624.html