參考: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;