8位深调色板图
VOC数据集中的mask图虽然看上去是彩色的,但不同于RGB图像,它是8位深的调色板图。
调色板图:每个像素为0~255中的一个数,代表颜色索引。调色板图像本身会存储一个叫调色板(palette)的数据结构, 最多存储256组rgb颜色。图像中的每一个像素,通过颜色索引, 可以在调色板中获得相应的颜色。
path="E:\\deeplab\\data\\table_tennis\\SegmentationClass\\000079.png"
image=Image.open(path)
print(image.mode)
# output
P
保存调色板
- 将mask转为PIL.Image格式
- 使用imgviz中的Label colormap给mask添加调色板
- 保存PIL.Image格式的图像。不可以使用OpenCV进行读取
def save_colored_mask(mask, save_path):
img=Image.fromarray(mask.astype(np.uint8),mode="P")
colormap = imgviz.label_colormap()
img.putpalette(colormap.flatten())
img.save(save_path)