如何使用PIL的Image.point(table)方法对256灰度图像应用阈值?
我有一些8位灰度的TIFF图片,我想把它们转换成单色图像,使用75%的白色阈值(也就是190)。在Image.convert(mode)这个方法的说明中,PIL手册提到:
“当把灰度图像转换成位图图像(模式为‘1’)时,所有非零的值都会被设置为255(白色)。如果想使用其他的阈值,可以使用point方法。”
Image.point(table)这个方法说明说,它会通过给定的表来处理每个像素。
im.point(table, mode) => image
im.point(function, mode) => image“通过表来处理图像,并实时转换。在当前版本的PIL中,这个方法只能用来将‘L’和‘P’类型的图像一步转换为‘1’类型,比如用来设置图像的阈值。”
我该如何创建一个对应于我需要的75%阈值的表(或函数)呢?
2 个回答
2
试试这个代码:im.point(lambda p: p > 190)
,然后把结果发出来。
18
我在这个回答中找到了完整的解决方案:“在Python中从字符串写入TIFF文件”。这个函数必须包含“和255”。
threshold = 191
im = im.point(lambda p: p > threshold and 255)