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的颜色,可以改变指定颜色或添加更多指定种类