我想将PNG图像二值化。
如果可能的话,我想使用Pillow库。
我看到有两种方法可以使用:
image_file = Image.open("convert_image.png") # open colour image
image_file = image_file.convert('1') # convert image to black and white
这种方法似乎通过抖动图像来处理填充有浅色的区域。我不想要这种行为。例如,如果有一个浅黄色的圆圈,我希望它变成黑色圆圈。
更一般地说,如果像素的RGB值为(x,y,z),那么对于某个阈值0<t<255,如果x<=t或y<=t或z<=t,则我希望该像素变为黑色。
我可以将图像转换为灰度或RGB,然后手动应用阈值测试,但这似乎效率低下。
我看到的第二种方法是:
threshold = 100
im = im2.point(lambda p: p > threshold and 255)
从这里获取,但我不知道它是如何工作的,阈值是什么,这里的功能是什么,以及“和255”的作用。
我正在寻找如何应用方法2的解释或使用Pillow的替代方法。