1

我有一个图像。

我想逐个像素地检查该图像,并且任何不是黑色的像素都应该变成白色。我该怎么做呢?

(Python)。

谢谢!

4

3 回答 3

6

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

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

这就是PIL 文档对此的看法:

转换为双层图像(模式“1”)时,源图像首先转换为黑白。然后将大于 127 的结果值设置为白色,并对图像进行抖动处理。要使用其他阈值,请使用点法。

于 2009-07-03T17:36:23.150 回答
3

您应该使用point专门为此而存在的功能。

converter= ( (0,) + 255*(255,) ).__getitem__
def black_or_white(img):
    return img.convert('L').point(converter)
于 2009-07-03T18:42:59.830 回答
1

您可能想查看以下库:

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

尤其:

im.getpixel(xy) => value or tuple

im.putpixel(xy, colour)
于 2009-07-03T17:20:47.087 回答