labelme 制作语义分割(Semantic Segmentation)数据,不同labels指定不同颜色

ubuntu16.04 Anaconda 环境
labelme 安装与使用

不同label指定不同颜色

1. 打标签

labelme 制作语义分割(Semantic Segmentation)数据,不同labels指定不同颜色_第1张图片

2. 修改 json_to_dataset.py 这个文件在解析.json文件的时候会用到

我的路径为:/home/sj/anaconda3/envs/labelme/lib/python3.6/site-packages/labelme/cli
也有可能在.conda文件夹里
找不到可以搜一下文件名

	# 添加指定标签对应的label_value
    label_name_to_value = {'_background_': 0, 'eye' : 1, 'mouth' : 2}

    # 下面注释掉
    # for shape in sorted(data['shapes'], key=lambda x: x['label']):
    #     label_name = shape['label']
    #     if label_name in label_name_to_value:
    #         label_value = label_name_to_value[label_name]
    #     else:
    #         label_value = len(label_name_to_value)
    #         label_name_to_value[label_name] = label_value

3. 修改label.py 文件

路径  /home/sj/anaconda3/envs/labelme/lib/python3.6/site-packages/imgviz
for i in range(0, n_label):
        id = i
        r, g, b = 0, 0, 0
        for j in range(0, 8):
            r = np.bitwise_or(r, (bitget(id, 0) << 7 - j))
            g = np.bitwise_or(g, (bitget(id, 1) << 7 - j))
            b = np.bitwise_or(b, (bitget(id, 2) << 7 - j))
            id = id >> 3

        cmap[i, 0] = r
        cmap[i, 1] = g
        cmap[i, 2] = b

    #  自己加的colormap
    cmap[1, :] = [0,255,0]  # eye
    cmap[2, :] = [255,0,0]  # mouth


    if value is not None:
        hsv = color_module.rgb2hsv(cmap.reshape(1, -1, 3))
        if isinstance(value, float):
            hsv[:, 1:, 2] = hsv[:, 1:, 2].astype(float) * value
        else:
            assert isinstance(value, int)
            hsv[:, 1:, 2] = value
        cmap = color_module.hsv2rgb(hsv).reshape(-1, 3)
    return cmap

不同版本的labelme指定cmap的文件好像不太一样,有的是在draw.py文件里
cmap的值要跟刚才的label_name_to_value对应

4. labelme_json_to_dataset 解析json文件, 生成label.png

labelme 制作语义分割(Semantic Segmentation)数据,不同labels指定不同颜色_第2张图片
labelme 制作语义分割(Semantic Segmentation)数据,不同labels指定不同颜色_第3张图片

你可能感兴趣的:(label)