Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用定义的颜色值在python中保存/转换和读取图像_Python_Image_Python Imaging Library - Fatal编程技术网

如何使用定义的颜色值在python中保存/转换和读取图像

如何使用定义的颜色值在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之外的灰度将保持不变。当然,

我正在保存、转换为灰度,并用Python和PIL打开一个图像,如下所示

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%。已解决!因为我以后需要读取图像,所以我只保存了它,没有像以前那样使用点方法,因此它获得了正确的颜色,然后我做了表格操作,并使用点方法读取图像。