YOLOV8识别物体,并返回物体的像素坐标

一、YOLOV8的相关文件修改

1. 进入路径文件:

C:\Users\82370\.conda\envs\Ayolo8\Lib\site-packages\ultralytics\engine\result.py(此处路径为你的anacod安装的虚拟环境Ayolo8位置)

conda create -n Ayolo8 python=3.11 # 虚拟环境安装代码
conda activate Ayolo8  # 激活虚拟环境
pip install ultralytics  # 安装相应的ultralytics

2. 打开result.py,补充绘制中心点和标注中心点位置代码

找到相应的函数:annotator.box_label(),右击——转到定义,进入定义函数的文件plotting.py

补充相应的代码

补充代码内容如下,可以直接复制过去:

 # 补充代码:
                # 在预测图中绘制一个中心坐标红点
                # self.im表示圆点绘制的位置,((p1[0]+p2[0])//2,(p1[1]+p2[1])//2)表示坐标位置//表示取整除法
                # self.lw表示线宽和半径,(0,0,225)表示颜色
                cv2.circle(self.im,((p1[0]+p2[0])//2,(p1[1]+p2[1])//2),self.lw,(0,0,225),self.lw)
                # 创建中心点坐标变量
                Center = (((p1[0]+p2[0])/2+p1[0]),((p1[1]+p2[1])/2+p1[1]))
                # 用于在图像上添加文本
                # str(Center)表示要添加的文本内容,
                # ((p1[0]+p2[0])//2,(p1[1]+p2[1])//2)表示文本起始点坐标
                # 0代表字体类型, self.lw/3表示字体大小,txt.color表示文本颜色
                # 4表示线宽,lineType表示线型
                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]) + ")")

二、获取像素坐标示例

运行test.py文件

# 导入openCV库,实现相应的图片读写
import cv2  # 导入openCV库的代码
# 下载图片
import numpy as np  # 使用np作为numpy库的别名
import urllib.request  # 通过导入request模块,我们可以使用它提供的功能来发送HTTP请求、获取网页内容等。
from ultralytics import YOLO  # 将YOLOv8导入到该py文件中

# 加载官方或自定义模型
model = YOLO(r"E:\Deep learning\YOLOv8\yolov8n.pt")  # 加载一个官方的检测模型
color_3 = cv2.imread('3.jpeg')
source=[color_3]
results = model.predict(source, save=True, show_conf=False)
color_3 = results[0].plot()  # 在图像上添加色彩帧(追踪结果)
cv2.imshow('my_img_name_3', color_3)

参考博文:(博文写的非常详细,参考价值高👍)

YOLOv8、YOLOv8_OBB输出detect检测到的目标坐标信息_yolov8输出预测框的坐标-CSDN博客

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值