YOLOv7预测框的粗细怎么调整

YOLOv7模型的预测框线宽可以通过修改cv2.rectangle()函数的thickness参数来调整。在utils/plots.py文件的plot_one_box()函数中,将thickness默认值改为10可以实现边框变粗。其他尝试如修改line_width或不同位置的line_thickness未见效果。

问题描述:YOLOv7预测框的粗细怎么调整

解决办法:修改cv2.rectangle()函数中的参数值。

提醒:

cv2.rectangle()函数是OpenCV库中用于绘制矩形的函数,它的参数如下:
 

1. img:要绘制矩形的图像。

2. pt1:表示矩形的一个顶点,为一个二维元组或数组,例如(pt1_x, pt1_y)。

3. pt2:表示矩形的另一个顶点,同样为一个二维元组或数组,例如(pt2_x, pt2_y)。

4. color:矩形的颜色,可以是一个表示颜色的三元组或一个预定义的颜色常量,例如(255,0,0)表示红色。

5. thickness:线宽,表示矩形的边框粗细,默认为1。

6. lineType:线的类型,可选参数。默认为cv2.LINE_8,表示8连线,在边框的八个相邻点之间绘制直线。你还可以选择cv2.LINE_4、cv2.LINE_AA等其他类型的线。

7. shift:可选参数,用于对坐标点进行缩放和平移。

所以我们修改 thickness参数。修改前代码为cv2.rectangle(img, c1, c2, color, thickness=tl, lineType=cv2.LINE_AA),将thickness=tl修改为thickness=10

修改的代码处于的位置。yolov7/utils/plots.py中的def plot_one_box(x, img, color=None, label=None, line_thickness=10)函数里面

def plot_one_box(x, img, color=None, label=None, line_thickness=10):
    # Plots one bounding box on image img
    tl = line_thickness or round(0.002 * (img.shape[0] + img.shape[1]) / 2) + 1  # line/font thickness
    color = color or [random.randint(0, 255) for _ in range(3)]
    c1, c2 = (int(x[0]), int(x[1])), (int(x[2]), int(x[3]))
    cv2.rectangle(img, c1, c2, color, thickness=tl, lineType=cv2.LINE_AA)
    if label:
        tf = max(tl - 1, 1)  # font thickness
        t_size = cv2.getTextSize(label, 0, fontScale=tl / 3, thickness=tf)[0]
        c2 = c1[0] + t_size[0], c1[1] - t_size[1] - 3
        cv2.rectangle(img, c1, c2, color, 20, cv2.LINE_AA)  # filled
        cv2.putText(img, label, (c1[0], c1[1] - 2), 0, tl / 3, [225, 255, 255], thickness=tf, lineType=cv2.LINE_AA)

疑惑:我刚开始调整的line_width参数没有用;在detect.py里面加入这一行也是没有用的(这个方法是在其他博主那看到的);修改其他行处的 line_thickness也是没有用的;最后试了一下将thickness=tl修改为thickness=10是有用的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神笔馬良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值