Yolov8修改标签字体颜色,原本默认的字体的颜色是白色,遇到颜色较淡的预测框再用白色,看起来就不是很清楚,很难看清,为了得到更好的显示效果(例如改成黑色),因此想对字体颜色进行修改。
查阅网上其他博主发的博客,大都是在plotting文件找到box_label这个用法,修改txt_color=(255, 255, 255),但改完之后,预测之后字体颜色并没有任何变化,还是和原来一样。仔细研究了plotting.py文件中的代码和不断尝试之后,终于找到了真正应该修改的地方,步骤如下:
ultralytics版本:8.3.9
首先应该明确Yolov8 不同于Yolov7和Yolov5,修改源码中的txt_color就可以更换颜色了(只能用一个单一的颜色),根据Yolov8中plotting.py文件中的代码可知,字体颜色是随着预测框颜色动态变化的。
ultralytics\utils\plotting.py文件中定位到图中所示的get_txt_color()函数这一行,代码如下所示:
阅读get_txt_color()函数代码可知,根据预测框颜色指定文本颜色,如果预测框的颜色属于dark_colors暗色调,标签文本颜色就是(104,31,17),如果预测框颜色属于light_colors亮色调,字体颜色会返回白色(255,255,255),如果既不属于暗色调也不属于亮色调则返回txt_color定义的颜色(255,255,255)白色,一般都会在暗亮色调范围内,除非你在源码中新加了自己定义的颜色,然后又没有将该颜色添加到暗亮色调范围内。
dark_colors暗色调和light_colors亮色调范围的颜色在plotting.py文件中也都已经定义好了,位置就在get_txt_color()函数上面,如下图所示