iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >yolov5返回坐标的方法实例
  • 423
分享到

yolov5返回坐标的方法实例

2024-04-02 19:04:59 423人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录yolov5返回坐标(v6版)附参考:yolov5输出检测到的目标坐标信息(旧版本)总结yolov5返回坐标(v6版) 1 、从yolov5文件夹李找到detect.py,按Ct

yolov5返回坐标(v6版)

1 、从yolov5文件夹李找到detect.py,按Ctrl+F 输入annotator.box_label;

if save_img or save_crop or view_img:  # Add bbox to image
                        c = int(cls)  # integer class
                        label = None if hide_labels else (names[c] if hide_conf else f'{names[c]} {conf:.2f}')
                        annotator.box_label(xyxy, label, color=colors(c, True))

2、找到这个代码后按住ctrl键,鼠标点击box_label,就会跳到plots.py文件并定位到box_label定义的地方;

3、找到p1, p2 = (int(box[0]), int(box[1])), (int(box[2]), int(box[3])),在这行代码下面新增:

print("左上点的坐标为:(" + str(p1[0]) + "," + str(p1[1]) + "),右下点的坐标为(" + str(p2[0]) + "," + str(p2[1]) + ")")

4、完成后的代码如下:

def box_label(self, box, label='', color=(128, 128, 128), txt_color=(255, 255, 255)):
        # Add one xyxy box to image with label
        if self.pil or not is_ascii(label):
            self.draw.rectangle(box, width=self.lw, outline=color)  # box
            if label:
                w, h = self.font.getsize(label)  # text width, height
                outside = box[1] - h >= 0  # label fits outside box
                self.draw.rectangle([box[0],
                                     box[1] - h if outside else box[1],
                                     box[0] + w + 1,
                                     box[1] + 1 if outside else box[1] + h + 1], fill=color)
                # self.draw.text((box[0], box[1]), label, fill=txt_color, font=self.font, anchor='ls')  # for PIL>8.0
                self.draw.text((box[0], box[1] - h if outside else box[1]), label, fill=txt_color, font=self.font)
        else:  # cv2
            p1, p2 = (int(box[0]), int(box[1])), (int(box[2]), int(box[3]))
            print("左上点的坐标为:(" + str(p1[0]) + "," + str(p1[1]) + "),右下点的坐标为(" + str(p2[0]) + "," + str(p2[1]) + ")")
            
            cv2.rectangle(self.im, p1, p2, color, thickness=self.lw, lineType=cv2.LINE_AA)

5、测试情况:回到命令行,cd到yolov5文件夹,输入指令:python detect.py --source ../mask.1.jpg,其中mask.1.jpg应改为你yolov5文件夹下的图片名称;按回车键后运行就发现输出的信息多了刚才添加的一行

(venv) (base) rongxiao@rongxiao:~/PyCharmProjects/yolococo/yolov5$ Python detect.py --source ../mask.1.jpg
detect: weights=yolov5s.pt, source=../mask.1.jpg, imgsz=[640, 640], conf_thres=0.25, iou_thres=0.45, max_det=1000, device=, view_img=False, save_txt=False, save_conf=False, save_crop=False, nosave=False, classes=None, agnostic_nms=False, augment=False, visualize=False, update=False, project=runs/detect, name=exp, exist_ok=False, line_thickness=3, hide_labels=False, hide_conf=False, half=False, dnn=False
YOLOv5 ? v6.0-147-g628817d torch 1.8.2+cpu CPU

Fusing layers... 
Model Summary: 213 layers, 7225885 parameters, 0 gradients
左上点的坐标为:(982,384),右下点的坐标为(1445,767)
左上点的坐标为:(724,237),右下点的坐标为(770,277)
左上点的坐标为:(711,226),右下点的坐标为(1689,938)
image 1/1 /home/rongxiao/PycharmProjects/yolococo/mask.1.jpg: 384x640 2 persons, 1 airplane, Done. (0.182s)
Speed: 1.1ms pre-process, 181.7ms inference, 1.0ms NMS per image at shape (1, 3, 640, 640)
Results saved to runs/detect/exp15

附参考:yolov5输出检测到的目标坐标信息(旧版本)

找到detect.py,在大概113行,找到plot_one_box

                # Write results
                for *xyxy, conf, cls in reversed(det):
                    if save_txt:  # Write to file
                        xywh = (xyxy2xywh(torch.tensor(xyxy).view(1, 4)) / gn).view(-1).tolist()  # nORMalized xywh
                        with open(txt_path + '.txt', 'a') as f:
                            f.write(('%g ' * 5 + '\n') % (cls, *xywh))  # label format

                    if save_img or view_img:  # Add bbox to image
                        label = '%s %.2f' % (names[int(cls)], conf)
                        plot_one_box(xyxy, im0, label=label, color=colors[int(cls)], line_thickness=3)

ctr+鼠标点击,进入general.py,并自动定位到plot_one_box函数,修改函数为

def plot_one_box(x, img, color=None, label=None, line_thickness=None):
    # 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)
    print("左上点的坐标为:(" + str(c1[0]) + "," + str(c1[1]) + "),右下点的坐标为(" + str(c2[0]) + "," + str(c2[1]) + ")")

即可输出目标坐标信息了

总结

到此这篇关于yolov5返回坐标的文章就介绍到这了,更多相关yolov5返回坐标内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: yolov5返回坐标的方法实例

本文链接: https://www.lsjlt.com/news/142840.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • yolov5返回坐标的方法实例
    目录yolov5返回坐标(v6版)附参考:yolov5输出检测到的目标坐标信息(旧版本)总结yolov5返回坐标(v6版) 1 、从yolov5文件夹李找到detect.py,按Ct...
    99+
    2024-04-02
  • python int返回的方法实例分析
    今天小编给大家分享一下python int返回的方法实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、int额外的方...
    99+
    2023-06-30
  • python中int返回的方法示例
    这篇文章给大家分享的是有关python中int返回的方法示例的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)...
    99+
    2023-06-14
  • thinkphp中m方法返回值实例分析
    这篇文章主要介绍了thinkphp中m方法返回值实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇thinkphp中m方法返回值实例分析文章都会有所收获,下面我们一起来看看吧。在thinkphp中,m方法的...
    99+
    2023-06-30
  • Vue实现高德坐标转GPS坐标功能的示例详解
    首先介绍一下常见的几种地图的坐标类型: WGS-84:这是一个国际标准,也就是GPS坐标(Google Earth、或者GPS模块采集的都是这个类型)。 GCJ-02:中国坐标偏移标...
    99+
    2024-04-02
  • pandas返回缺失值位置的方法实例教程
    目录pandas返回缺失值位置附:Pandas查找缺失值的位置,并返回缺失值行号以及列号总结pandas返回缺失值位置 有的时候我们可能需要获取一些缺失值的信息,因此我们需要获取这些...
    99+
    2024-04-02
  • vue+openlayer5获取当前鼠标滑过的坐标实现方法
    前言:         在vue项目中怎么获取当前鼠标划过的坐标呢,这里来分享下方法。 实现效果: ...
    99+
    2024-04-02
  • Pytorch搭建YoloV5目标检测平台实现的方法
    这篇文章主要讲解了“Pytorch搭建YoloV5目标检测平台实现的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pytorch搭建YoloV5目标检测平台实现的方法”吧!YoloV5实...
    99+
    2023-06-30
  • java实现从方法返回多个值功能示例
    本文实例讲述了java实现从方法返回多个值功能。分享给大家供大家参考,具体如下:这里介绍三个方法,使java方法返回多个值。方法1:使用集合类方法2:使用封装对象方法3:使用引用传递示例代码如下:import java.util.HashM...
    99+
    2023-05-30
    java 方法 返回值
  • SpringBoot接口返回结果封装方法实例详解
    rest接口会返回各种各样的数据,如果对接口的格式不加约束,很容易造成混乱。 在实际项目中,一般会把结果放在一个封装类中,封装类中包含http状态值,状态消息,以及实际的数据。这里主...
    99+
    2024-04-02
  • Spring Data Jpa返回自定义对象的3种方法实例
    目录方法一、简单查询直接new对象方法二、Service层使用EntityManager方法三、Dao层使用Map接收自定义对象总结tasks表对应的Entity @Entity @...
    99+
    2024-04-02
  • 微信小程序返回上一页的各种方法实例
    目录一、方法罗列二、讲解三、常用案例四、总结补充:微信小程序如何返回上一个页面并刷新上一个页面总结返回上一页,一共有4中方法,每种方法都有不一样细节 一、方法罗列 函数说明navig...
    99+
    2024-04-02
  • YOLOv5目标检测之anchor设定的方法
    这篇文章主要介绍“YOLOv5目标检测之anchor设定的方法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“YOLOv5目标检测之anchor设定的方法”文章能帮助大家解决问题。前言yolo算法作为...
    99+
    2023-06-30
  • Mybatis中insert方法返回数字的示例分析
    这篇文章主要介绍了Mybatis中insert方法返回数字的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言:前几天在做项目demo的时候,发现有一个很奇怪的现象,...
    99+
    2023-06-14
  • Shell中处理方法返回值的示例分析
    这篇文章主要介绍了Shell中处理方法返回值的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。测试程序我们一般通过$来获取上一个语句的输出。看一下下面得测试语句:新建t...
    99+
    2023-06-09
  • SpringBoot如何返回页面的实现方法
    SpringBoot中使用Controller和页面的结合能够很好地实现用户的功能及页面数据的传递。但是在返回页面的时候竟然会出现404或者500的错误,我总结了一下如何实现页面的返...
    99+
    2024-04-02
  • JAVA 开发之用静态方法返回类名的实例详解
    JAVA 开发之用静态方法返回类名的实例详解前言:最初碰到这个问题,首先想到的是getClass()方法,如下尝试:public static String getClassName(){ String className=null; cl...
    99+
    2023-05-31
    java 静态 类名
  • java中的方法返回值使用泛型,实现灵活的返回值类型
      使用Mybatis框架的时候,想封装一个底层JDBC控制器,用于提供和Mybatis交互的增删改查接口(公用的接口),但由于公用的查询方法可能是用户自定义的任意一个和表对应的java bean类型,所以要考虑怎么样给调用者返回正确的返回...
    99+
    2023-09-02
    mybatis java spring
  • Vue中请求本地JSON文件并返回数据的方法实例
    目录1.目录结构2.检查一下自己是否安装了 json-server(以下截图代表安装了)3.安装完成以后我们就可以运行自己的json文件了4.看看浏览器里的数据呈现效果吧5.为了保险...
    99+
    2022-11-13
    vue请求本地json文件 vue获取json文件数据 vue引入本地json文件
  • Android自定义图片地图坐标功能的实现方法
    本篇内容主要讲解“Android自定义图片地图坐标功能的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android自定义图片地图坐标功能的实现方法”吧!一、前言最近项目要求实现一个在自...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作