我有一个图像。
我想逐个像素地检查该图像,并且任何不是黑色的像素都应该变成白色。我该怎么做呢?
(Python)。
谢谢!
我有一个图像。
我想逐个像素地检查该图像,并且任何不是黑色的像素都应该变成白色。我该怎么做呢?
(Python)。
谢谢!
最有效的方法是使用点函数
def only_black(band):
if band > 0:
return 255
return 0
result = im.convert('L').point(only_black)
这就是PIL 文档对此的看法:
转换为双层图像(模式“1”)时,源图像首先转换为黑白。然后将大于 127 的结果值设置为白色,并对图像进行抖动处理。要使用其他阈值,请使用点法。
您应该使用point
专门为此而存在的功能。
converter= ( (0,) + 255*(255,) ).__getitem__
def black_or_white(img):
return img.convert('L').point(converter)
您可能想查看以下库:
http://effbot.org/imagingbook/image.htm
尤其:
im.getpixel(xy) => value or tuple
和
im.putpixel(xy, colour)