【pascal voc数据集制作】mask图格式

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)

你可能感兴趣的:(python,opencv,计算机视觉,python)