将图像清理为只有黑色

1 投票
3 回答
828 浏览
提问于 2025-04-15 12:40

我有一张图片。

我想逐个像素地查看这张图片,把任何不是黑色的像素都变成白色。我该怎么做呢?

(使用Python语言)。

谢谢!

3 个回答

1

你可能想看看下面这个库:

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

特别是:

im.getpixel(xy) => value or tuple

还有

im.putpixel(xy, colour)
6

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

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

这是PIL文档中关于这个的说明:

当转换为二级图像(模式“1”)时,源图像首先会被转换为黑白图像。然后,值大于127的部分会被设置为白色,接着图像会进行抖动处理。如果想使用其他的阈值,可以使用点方法。

3

你应该使用 point 这个函数,它就是为了这个目的而存在的。

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

撰写回答