图像分割标注工具labelme各个版本改变标注颜色

labelme没有draw文件了,实现标注是调用imgviz库的label文件,所以改一下label文件的相应代码就可以实现了。
1.labelme的版本为4.5.6
具体位置在conda虚拟环境位置下的envs/labelme/lib/python3.6/site-packages/imgviz/label.py中,将

 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))

改为

if i == 1:
   r = 255
   g = 255
   b = 255
else:
   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))

注意:版本问题,写文章时labelme的版本为4.5.6。
2.labelme的版本为5.0.1
具体位置在conda虚拟环境位置下的envs/labelme/Lib/site-packages/imgviz/label.py中,将

	i = np.repeat(i[:, None], 8, axis=1)
    i = np.right_shift(i, np.arange(0, 24, 3)).astype(np.uint8)
    j = np.arange(8)[::-1]
    r = np.bitwise_or.reduce(np.left_shift(bitget(i, 0), j), axis=1)
    g = np.bitwise_or.reduce(np.left_shift(bitget(i, 1), j), axis=1)
    b = np.bitwise_or.reduce(np.left_shift(bitget(i, 2), j), axis=1)

修改为

i = np.repeat(i[:, None], 8, axis=1)
    i = np.right_shift(i, np.arange(0, 24, 3)).astype(np.uint8)
    j = np.arange(8)[::-1]
    r = np.bitwise_or.reduce(np.left_shift(bitget(i, 0), j), axis=1)
    g = np.bitwise_or.reduce(np.left_shift(bitget(i, 1), j), axis=1)
    b = np.bitwise_or.reduce(np.left_shift(bitget(i, 2), j), axis=1)
    r=np.full_like(r,255)#这里255,0,0三个数字可以随便改,改成你所指定的颜色
    g=np.full_like(g,0)
    b=np.full_like(b,0)

修改后重启动

3.指定不同标签的不同颜色(版本5.0.1)

具体位置在conda虚拟环境位置下的envs/labelme/Lib/site-packages/imgviz/label.py中,将

	r = np.bitwise_or.reduce(np.left_shift(bitget(i, 0), j), axis=1)
    g = np.bitwise_or.reduce(np.left_shift(bitget(i, 1), j), axis=1)
    b = np.bitwise_or.reduce(np.left_shift(bitget(i, 2), j), axis=1)

    cmap = np.stack((r, g, b), axis=1).astype(np.uint8)
	r = np.bitwise_or.reduce(np.left_shift(bitget(i, 0), j), axis=1)
    g = np.bitwise_or.reduce(np.left_shift(bitget(i, 1), j), axis=1)
    b = np.bitwise_or.reduce(np.left_shift(bitget(i, 2), j), axis=1)
    
    cmap = np.stack((r, g, b), axis=1).astype(np.uint8)
    cmap[1, :] = [0,255,0]  # 种类1的颜色
    cmap[2, :] = [255,0,0]  # 种类2的颜色,可以改变指定颜色或添加更多指定种类

你可能感兴趣的:(遇到的问题,python,opencv,anaconda)