二维码点击跟踪代码讲解

  1. 当 ROS 系统正常运行时,检查是否接收到新的 ROS 图像,重置 get_ros_img 标志,并将 ROS 图像克隆到本地图像变量 img

image.png

  1. 创建一个 SpireCV 库的 TargetsInFrame 类的实例,用于保存单帧的检测结果,并递增帧 ID,将图像调整为 ad 指定的宽度和高度,在图像上运行检测,并在帧中绘制特定目标,即在检测的时候显示所有的二维码检测框,在追踪的时候,只显示追踪的二维码检测框

image.png

  1. 初始化一个 ROS 消息 ros_tgts,用于保存帧中的目标,并设置其元数据。

image.png

  1. 遍历所有检测到的目标,如果 clicked_id 未设置,将目标添加到 ROS 消息中。

image.png

  1. 如果此前没有二维码被点击,并且当前被点击了,找到被点击的二维码的id

image.png

  1. 如果二维码ID 匹配 clicked_id,则重置 no_track_frame_count,将目标添加到 ROS 消息,并设置云台状态为跟踪模式。

image.png

  1. no_track_frame_count标志位可以控制吊舱的移动和停止

image.png

  1. 将目标和云台状态发布到各自的 ROS 话题,将图像推流到指定的 RTSP 地址,并在窗口中显示图像

image.png