YOLOv5输出detect检测到的目标坐标信息

目前在学习机械臂抓取,需要yolo预测图的坐标信息,参考诸位大佬的代码实现了在预测图中显示中心点坐标和打印坐标信息

一、添加打印坐标信息代码

首先在detect.py中的找到box_label函数,进入该函数

 添加该部分代码

代码我放在后面了

运行detect.py结果如下所示

 二、预测图上显示中心点坐标

为了能让预测图也显示中心坐标,添加下列代码

 全部代码

            # ---------------------------------------------------------------------------------------------------#
            # 在预测图中绘制一个中心坐标红点
            cv2.circle(self.im,((p1[0] + p2[0])//2, (p1[1] + p2[1])//2), self.lw,(0, 0, 255), self.lw)
            # 创建了个中心点坐标变量
            Center = ( ((p2[0] - p1[0]) / 2 +p1[0]) , ((p2[1] - p1[1]) / 2 + p1[1]) )
            cv2.putText(self.im, str(Center), ((p1[0] + p2[0])//2, (p1[1] + p2[1])//2), 0, self.lw / 3,txt_color,
                            thickness=4, lineType=cv2.LINE_AA)
            # 打印坐标信息
            print("左上点的坐标为:(" + str(p1[0]) + "," + str(p1[1]) + "),右上点的坐标为(" + str(p2[0]) + "," + str(
                p1[1]) + ")")
            print("左下点的坐标为:(" + str(p1[0]) + "," + str(p2[1]) + "),右下点的坐标为(" + str(p2[0]) + "," + str(
                p2[1]) + ")")
            print("中心点的坐标为:(" + str((p2[0] - p1[0]) / 2 +p1[0]) + "," + str((p2[1] - p1[1]) / 2 + p1[1]) + ")")
            # ---------------------------------------------------------------------------------------------------#

 运行后的结果是这样的

这里我要提一嘴cv2.putText函数的用法,因为刚开始的时候我传入center到里边报错,然后特地查了该函数的用法,如果感兴趣你可以去搜一搜相关博客

putText(img, text, org, fontFace, fontScale, color, thickness=None, lineType=None, bottomLeftOrigin=None)

 参数解释

img: 图片
text: 要显示的文本字符串
org: 字符串框左上角点的位置
fontFace: 字体类型
fontScale: 字体大小
color: 字体颜色
thickness: 字体粗细

题外话:上边预测图中存在标签和置信度看起来并不好看,可以搜一搜隐藏标签和置信度的博客,有很多,这里我就懒得去找了

  • 39
    点赞
  • 260
    收藏
    觉得还不错? 一键收藏
  • 42
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值