机器视觉小白 , 逐步在成长中 , 分享一下今日所学 (也是参考各位大佬总结 做的希望对你有所帮助)
找到需要打印的位置
1.在 yolov5-master项目中找到 detect.py 文件
2.按键盘 Ctrl+F 进入查找功能,输入box_label 找到对应的函数。如下图所示:
3.按住 Ctrl+鼠标左键 点击box_label函数, 进入plotting.py 找到要添加的位置 (我的是在180+行左右)
代码在最后面
代码包括了中心点绘制, 中心点坐标显示, 中心点坐标打印可根据自己需求选择.
4.回到detect.py运行即可. (我是需要中心点 所以注释了几行代码,大家可以根据需求更改)
# 更改位置---------------▼▼▼---------------------------↓↓↓------------------------------ p1, p2 = (int(box[0]), int(box[1])), (int(box[2]), int(box[3])) 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]) + ")") #更改结束-----------------▲▲▲----------------------↑↑↑----------------------------------