|
本帖最后由 z13228604287 于 2022-5-26 09:24 编辑
经实际测试 YOLO5 比 4抖动要轻很多 可能是返回坐标不同的关系吧!
实现原理:
- 寻找离中心鼠标最近的目标
- 跟踪这个目标直到目标消失或远离视野范围
- 再次寻找离鼠标最近的目标
实现步
窗口程序集名 | 保 留 | 保 留 | 备 注 | 程序集1 | | | | 变量名 | 类 型 | 数组 | 备 注 | 横坐标偏移 | 小数型 | | 纵坐标偏移 | 小数型 | | 鼠标坐标 | 点2i类 | | 上一次中心坐标 | 点2i类 | | 移动最大距离 | 双精度小数型 | | 抖动幅度 | 双精度小数型 | |
移动最大距离 = 35 抖动幅度 = 20 上一次中心坐标. 初始化 (-1, -1 )返回 (0 ) 变量名 | 类 型 | 静态 | 数组 | 备 注 | 视频 | 视频采集类 | | | 图 | 多维矩阵类 | | | 预测框 | 暗网预测框类 | | |
视频. 打开 (“vtest.avi”, 0, )如果真 (视频. 已打开 () = 假)视觉_控制台输出 (“文件打开失败”, )视觉_控制台命令 (“pause”)返回 (-1 )判断循环首 (视频. 读 (图 )) 图. 平移 (横坐标偏移, 纵坐标偏移, 图 ) 目标锁定 (图, 预测框 )视觉_显示图像 (“小白鼠”, )视觉_等待按键 (500 )判断循环尾 ()变量名 | 类 型 | 静态 | 数组 | 备 注 | 最小距离 | 双精度小数型 | | | 索引 | 整数型 | | | i | 整数型 | | | 矩形 | 矩形2i类 | | | 中心点 | 点2i类 | | | 距离 | 双精度小数型 | | |
索引 = -1 最小距离 = 2147483647 判断 (上一次中心坐标.左边 = -1 )计次循环首 (目标. 尺寸 (), i )矩形. 初始化 (目标. 横坐标 (i ), 目标. 纵坐标 (i ), 目标. 宽 (i ), 目标. 高 (i )) 中心点 = 矩形. 中心点 ()距离 = 鼠标坐标. 范围 (中心点 )如果真 (最小距离> 距离 ) {最小距离 = 距离 索引 = i 上一次中心坐标 = 中心点 计次循环尾 ()计次循环首 (目标. 尺寸 (), i )矩形. 初始化 (目标. 横坐标 (i ), 目标. 纵坐标 (i ), 目标. 宽 (i ), 目标. 高 (i )) 中心点 = 矩形. 中心点 ()距离 = 鼠标坐标. 范围 (中心点 ) 如果真 (最小距离 > 距离 ) {最小距离 = 距离 如果真 (最小距离 < 移动最大距离 )索引 = i 如果真 (最小距离 > 抖动幅度 )上一次中心坐标 = 中心点 计次循环尾 ()如果 (索引 = -1 ) 上一次中心坐标. 初始化 (-1, -1 )矩形. 初始化 (目标. 横坐标 (索引 ), 目标. 纵坐标 (索引 ), 目标. 宽 (索引 ), 目标. 高 (索引 )) 视觉_矩形 (输入图, 矩形, 标量 (0, 0, 255 ), 2, 8, 0 )视觉_圆 (输入图, 上一次中心坐标, 2, 标量 (0, 255 ), -1, 8, 0 )视觉_箭头线 (输入图, 鼠标坐标, 上一次中心坐标, 标量 (255, 0, 0 ), 1, #线类型_抗锯齿, 0, 1 )横坐标偏移 = 横坐标偏移 + 鼠标坐标.左边 - 上一次中心坐标.左边 纵坐标偏移 = 纵坐标偏移 + 鼠标坐标.顶边 - 上一次中心坐标.顶边 视觉_圆 (输入图, 鼠标坐标, 2, 标量 (0, 0, 255), -1, 8, 0)
|
|