参考:https://blog.csdn.net/zhangziju/article/details/79123275
https://blog.csdn.net/qq_21239003/article/details/81092468
首先与cv2读取为narray格式不同,Image读到的是PIL格式,其中读到的图片mode有如下:
然后我们这里谈一下P(调色板)模式,该模式下,读到的图片是H*W大小,每个位置的值是一个索引,映射到其对应的调色板上(一般地,调色板长度为768 = 256 * 3,它是一个列表,内容为256个RGB值不断循环),图片中像素的值即为索引值;见下面这个例子:
然后,还有几个函数了解一下,首先是getpalette()获取图片对应的调色板;putpalette给对象加上调色板,相当于上色;
PS:
(1)对于灰度图像,默认的调色板数据格式均为[0,0,0,1,1,1,2,2,2,3,3,3...];
(2)对于RGB图像,默认的调色板也都是一样;也可以自定义调色板;
(3)目标需先转换为P模式,才具有调色板属性(即可以使用getpalette()函数),否则得到的调色板为None;