python如何给指定的颜色给与一个索引值

首先想到的方法是直接调用PIL库Image的convert方法

img = img.convert(model = 'p')

但covert中的调色板技术使用的是WEB和ADAPTIVE两种,先生成256位的数组,确定索引,再使用快速二叉树给索引值指定颜色,暂未找到更改索引对应颜色的方法。还发现有趣的是,Image的convert将RGB图像转化为P模式的图像,会将(255,0,0)转成值为15,(255,255,0)值为40,(0,255,0)为45,(0,0,255)转为192.不知道这个值怎么计算出来的。

 

最后找到有效的方法:来自deeplab-v3+的公开源码中对pascal voc 数据集处理:

def encode_segmap(mask):

    """Encode segmentation label images as pascal classes
    Args:
        mask (np.ndarray): raw segmentation label image of dimension
          (M, N, 3), in which the Pascal classes are encoded as colours.
    Returns:
        (np.ndarray): class map with dimensions (M,N), where the value at
        a given location is the integer denoting the class index.

你可能感兴趣的:(图像处理,python,深度学习,计算机视觉)