0
我试图将图像转换为使用PIL的方法“点”的二进制图像(二层)如下:转换灰色财政imageto二层
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')
,但它给了我一个黑色的形象!
编辑:如果我确定def mappoint (i): if i > 1: return 255
那么它会给出一个全白的图像!如果我在mappoint中打印i的值,它会显示0到255之间的值(如果你打印的范围是256),那么每个i都不是每个像素的值,是吗?还有另一种方法只是通过当我们打开图像转换,使二层:IMG = Image.open(img_name).convert('1')
但默认情况下使用的阈值是127,和医生说要使用点的方法,如果我们想要另一个门槛
如果我做'def mappoint(i):if i> 1:return 255',那么它会给出一个全白的图像!如果我在mappoint中打印i的值,它会显示0到255之间的值(如果你打印的范围是256),那么每个i都不是每个像素的值,是吗?还有另外一种方法可以在我们打开图像时通过使用convert来创建bilevel:'img = Image.open(img_name).convert('1')'但默认情况下使用的阈值是127,并且文档说要使用如果我们想要另一个门槛,可以使用点法 – shn 2011-12-21 00:35:45
那么,你想要什么样的门槛?你**是否尝试**默认阈值?你对这个结果感到不满意吗? – 2011-12-21 00:56:31
如果你看看你的'mappoint'定义......你已经把阈值设置为1.所以只有黑色像素(和非常接近黑色的像素)将保持黑色,其余的将保持白色。机会是你正在测试这个图像没有足够的黑色像素,你会注意到.....尝试将阈值改为127以查看我的意思。 – 2011-12-21 01:11:20