yolov8部署ros,stream=True模式,调用摄像头发布坐标信息代码

本文介绍了如何利用Python编程实现基于YOLOv8的目标检测系统,结合ROS进行通信,用户可以通过鼠标选择并发送选定目标框的坐标。代码展示了如何处理鼠标事件,以及在视频流中实现实时目标框标注和坐标发送。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/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 < 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

似苦又甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值