如何在Python中保存/转换和读取具有定义颜色值的图像

1 投票
1 回答
914 浏览
提问于 2025-04-17 21:43

我在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)

撰写回答