#!/usr/bin/env python
import cv2
from ultralytics import YOLO
import numpy as np
import rospy
from communication_yolo.msg import yolomsg
def onMouse(event, x, y, flags,param): #鼠标回调函数,每点击鼠标响应一次,所做出的动作即:选择出目标框并发送目标框的坐标信息
global start_x, start_y,n,is_mouse_clicked,boxes_id
start_x, start_y = -1, -1 #每次执行鼠标响应函数前,将坐标归零
if event == cv2.EVENT_LBUTTONDOWN: #鼠标左键下降沿触发
start_x, start_y = x, y
n = chooseobj(point, start_x, start_y) #调用选择目标框函数,传入所有目标框坐标二维列表point、鼠标点击时的坐标start_x、start_y
boxes_id = results[0].boxes[n].id #获取点击鼠标时,目标的id
is_mouse_clicked=True #记录鼠标点击的标志,为if条件判断作准备
def chooseobj(p,start_x,start_y): #选择目标框的函数,取目标框中心点与鼠标响应时坐标最短距离的目标框的编号
point_center = list() #创建列表,存储计算得来的所有目标框的中心点(为一个二维的列表)
i = 0
while i <
yolov8部署ros,stream=True模式,调用摄像头发布坐标信息代码
于 2024-02-27 14:53:00 首次发布