我尝试使用PIL的“point”方法将图像转换为二值图像(bilevel),如下所示:
def mappoint (i):
if i > 1: return 1
else: return 0
if __name__=="__main__":
img = Image.open('no.tif')
img = img.point(mappoint)
img.save('ok.tif')
但它给了我一个黑色的形象!在
编辑:如果我定义mappoint (i): if i > 1: return 255
,那么它会给出一个全白色的图像!如果我在mappoint中打印I的值,它会显示从0到255的值(就像打印范围(256)),所以每个I不是每个像素的值,是吗?还有另一种方法可以在打开图像时使用convert来创建二层:img=Image.open(img_name).convert('1')
,但默认情况下使用的阈值是127,如果需要另一个阈值,doc会说使用point方法
这个函数起作用了,你已经生成了一个0和1的图像,它看起来是黑色的是因为标准图像的亮度从0到255。在
像您所做的强度1看起来是黑色的,因为在0到255的范围内,1非常接近0。在
如果您想要黑白图像,请将您的
mappoint
改为if i>1: return 255
。在相关问题 更多 >
编程相关推荐