labelImg 修改不同类别的颜色(点大小、标签大小、框角)
2023-12-14 21:34:29
1. 问题
在我的任务中,有 blue_obj
、 green_obj
和 yellow_obj
,但它们显示在不同颜色的框中,这使得我很难检查注释。我直接修改 box 的颜色后,下一张图片就不生效了。我应该如何将 box 的颜色修改为特定颜色?
例如:
- blue_obj:命名是蓝色,但 box 是黄色
- red_obj:命名是红色,但 box 是蓝色
- yellow_obj:命名是黄色,但 box 是红色
以上这些框的颜色就会让人混乱。
2. 解决方案
为了解决这个问题,我们可以参考《LabelImg目标检测标注工具之标记框修改显示明显、特定标签指定颜色》这篇文章,具体做法为:
Step 1 下载 labelImg 的源码,下载地址为:labelImg
Step 2 根据 Readme -> Installation -> Build from source
,按照不同操作系统安装相关依赖
pip install pyqt=5
pip install -c anaconda lxml
Step 3 修改 labelImg\libs\utils.py
文件中的函数:
"""
函数解释:根据text(即标签名)生成对应颜色
修改自己需要的标签
"""
def generate_color_by_text(text):
s = ustr(text)
hash_code = int(hashlib.sha256(s.encode('utf-8')).hexdigest(), 16)
r = int((hash_code / 255) % 255)
g = int((hash_code / 65025) % 255)
b = int((hash_code / 16581375) % 255)
Q = QColor(r, g, b, 155)
# RGBA格式: (R, G, B, 透明度),范围均为 [0, 255],其中透明度的越大越不透明,越小越透明
if text == "类别1": # 类别1 设置为红色(完全不透明)
Q = QColor(255, 0, 0, 255)
elif text == "类别2": # 类别2 设置为绿色(完全不透明)
Q = QColor(0, 255, 0, 255)
elif text == "类别3": # 类别3 设置为蓝色(完全不透明)
Q = QColor(0, 0, 255, 255)
return Q
💡 Tips:其中 类别
指的是具体的类别名称,比如 cat
、dog
这种。
Step 4 编译源码,使上述修改生效:
pyrcc5 -o libs/resources.py resources.qrc
Step 5 打开修改后的 labelImg
:
python labelImg.py
3. 修改 box 的四个角的大小和 label 名称的大小
修改 libs\shape.py
文件:
class Shape(object):
P_SQUARE, P_ROUND = range(2)
MOVE_VERTEX, NEAR_VERTEX = range(2)
# The following class variables influence the drawing
# of _all_ shape objects.
line_color = DEFAULT_LINE_COLOR
fill_color = DEFAULT_FILL_COLOR
select_line_color = DEFAULT_SELECT_LINE_COLOR
select_fill_color = DEFAULT_SELECT_FILL_COLOR
vertex_fill_color = DEFAULT_VERTEX_FILL_COLOR
h_vertex_fill_color = DEFAULT_HVERTEX_FILL_COLOR
point_type = P_ROUND
point_size = 8 # 点的大小
scale = 1.0
label_font_size = 6 # 标签的字体大小
💡 Tips:要想让每一个框在旁边显示其类别,可以使用快捷键 ctrl + shift + p。
4. [补充] RBGA 颜色大全
文章来源:https://blog.csdn.net/weixin_44878336/article/details/135002957
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!