如何在Python中保存/转换和读取具有定义颜色值的图像
我在Python中使用PIL库保存、转换为灰度图像并打开一张图片,代码是这样的:
Image.open(imgname).convert('L').save(imgname)
这样做后,我得到了一个矩阵,每个像素对应一个数字。我的图片有三种颜色:白色用255表示,黑色用0表示,灰色用128表示。
有没有办法在我把图片转换为灰度时,让白色对应0,灰色对应1,黑色对应2呢?
1 个回答
3
你可以制作一个自定义的查找表(lut),然后在保存灰度图像之前,用point()
方法将它应用到图像上。图像中的灰度级别,除了0、128和255以外,都会保持不变。当然,你也可以通过不同的方式初始化这个表来改变这一点。
lut = range(256) # initialize to an identity lut
lut[0] = 2
lut[128] = 1
lut[255] = 0
Image.open(imgname).convert('L').point(lut).save(imgname)