将图像清洁为仅黑色

时间:2009-07-03 17:17:17

标签: python image-processing python-imaging-library

我有一张照片。

我想逐个像素地查看该图像,并且任何非黑色的像素都应该变为白色。我该怎么做?

(Python)的

谢谢!

3 个答案:

答案 0 :(得分:6)

最有效的方法是使用点函数

def only_black(band):
    if band > 0:
        return 255
    return 0
result = im.convert('L').point(only_black)

这是PIL documentation对此所说的:

  

转换为双层图像时   (模式“1”),源图像是第一个   转换为黑白色。   结果值大于127   然后设置为白色,图像是   抖动。要使用其他阈值,请使用   点法。

答案 1 :(得分:3)

您应该使用point函数,该函数专门用于此原因。

converter= ( (0,) + 255*(255,) ).__getitem__
def black_or_white(img):
    return img.convert('L').point(converter)

答案 2 :(得分:1)

您可能需要查看以下库:

http://effbot.org/imagingbook/image.htm

特别是:

im.getpixel(xy) => value or tuple

im.putpixel(xy, colour)