如何使用定义的颜色值在python中保存/转换和读取图像
我正在保存、转换为灰度,并用Python和PIL打开一个图像,如下所示如何使用定义的颜色值在python中保存/转换和读取图像,python,image,python-imaging-library,Python,Image,Python Imaging Library,我正在保存、转换为灰度,并用Python和PIL打开一个图像,如下所示 Image.open(imgname).convert('L').save(imgname) 我得到一个矩阵,每个像素有一个数字。我的图像有3种颜色。255表示白色,0表示黑色,128表示灰色 当我将图像转换为灰度时,我是否可以在读取此图像时将0表示白色,1表示灰色,2表示黑色?您可以创建一个自定义lut(查找表),并在保存之前使用point()方法将其应用于灰度图像。图像中除0、128和255之外的灰度将保持不变。当然,
Image.open(imgname).convert('L').save(imgname)
我得到一个矩阵,每个像素有一个数字。我的图像有3种颜色。255表示白色,0表示黑色,128表示灰色
当我将图像转换为灰度时,我是否可以在读取此图像时将0表示白色,1表示灰色,2表示黑色?您可以创建一个自定义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)
谢谢当我阅读图像时,我得到了矩阵的正确值。但是当我保存图像时,我得到一个黑色图像。。。知道为什么吗?是的,我想是的。仅由0-2范围内的值组成的灰度图像将在视觉上显示非常非常暗,因为其中的所有值都非常低。在8位图像中,值的范围从0-255,表示白色的阴影或强度,从零(纯黑色)到100%。已解决!因为我以后需要读取图像,所以我只保存了它,没有像以前那样使用点方法,因此它获得了正确的颜色,然后我做了表格操作,并使用点方法读取图像。