精易论坛

标题: yolo识别出的目标进行多条件判断点击 [打印本页]

作者: yi153    时间: 2025-5-4 15:46
标题: yolo识别出的目标进行多条件判断点击

怎么样根据yolo识别出的目标进行多条件判断点击,大概有3种判断条件。

1.目标1和目标3以上的同时出现,然后先点击目标1消失后再点击目标3以上

2.只出现目标1,等快移动到左边的时候点击,然后在5秒内出现目标3以上也点击

3.1和3以上目标都没出现,但是出现了目标2,点击目标2

我是小白,这种判断不会写有大佬教一下吗



作者: 遗失的眼泪    时间: 2025-5-4 15:59
你都得到数据了,简单的判断都不会写吗?
判断(A和C同时出现=真)
操作指令
否则
操作别的指令
作者: 凌哥    时间: 2025-5-4 16:32
看看这样的逻辑符不符合你的要求:
https://yuanqi.tencent.com/share ... hareId=6yxLFhKz3Udd
作者: 逍≮遥≯神    时间: 2025-5-4 17:57
有没有哪位有好的解决办法
作者: 你的猫    时间: 2025-5-4 20:59
  
窗口程序集名保 留  保 留备 注
窗口程序集1   
变量名类 型数组备 注
目标1出现逻辑型  
目标2出现逻辑型  
目标3出现逻辑型  
目标1位置X整数型  
目标1位置Y整数型  
目标2位置X整数型  
目标2位置Y整数型  
目标3位置X整数型  
目标3位置Y整数型  
上次点击时间整数型  
目标1移动计时整数型  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
时钟1.时钟周期 = 100  ' 100毫秒检测一次
上次点击时间 = 取启动时间 ()
子程序名返回值类型公开备 注
时钟1_周期事件  
' 假设这是从YOLO获取识别结果的子程序
获取YOLO识别结果 ()

' 条件1: 目标1和目标3以上的同时出现
如果 (目标1出现 目标3出现)
鼠标移动点击 (目标1位置X, 目标1位置Y)
延时 (300)  ' 等待目标1消失
如果 (目标3出现)  ' 再次检查目标3是否还在
鼠标移动点击 (目标3位置X, 目标3位置Y)
输出调试文本 ("点击目标1后目标3已消失")
上次点击时间 = 取启动时间 ()

' 条件2: 只出现目标1
.否则 如果 (目标1出现 取启动时间 () - 上次点击时间 > 5000)
' 检查目标1是否移动到左边(假设左边是X<100)
如果 (目标1位置X < 100)
鼠标移动点击 (目标1位置X, 目标1位置Y)
目标1移动计时 = 取启动时间 ()
上次点击时间 = 取启动时间 ()

' 5秒内检查目标3
判断循环首 (取启动时间 () - 目标1移动计时 < 5000)
获取YOLO识别结果 ()
如果 (目标3出现)
鼠标移动点击 (目标3位置X, 目标3位置Y)
跳出循环 ()
延时 (100)

判断循环尾 ()

' 条件3: 1和3都没出现,但有目标2
.否则 如果 (目标2出现 取启动时间 () - 上次点击时间 > 1000)  ' 1秒冷却
鼠标移动点击 (目标2位置X, 目标2位置Y)
上次点击时间 = 取启动时间 ()
' 无操作

子程序名返回值类型公开备 注
获取YOLO识别结果  
' 这里应该是调用YOLO识别接口获取结果的代码
' 假设我们已经获取到结果并设置了以下变量:
' 目标1出现 = 真/假
' 目标2出现 = 真/假
' 目标3出现 = 真/假
' 以及各自的坐标位置

' 示例模拟数据 - 实际应该从YOLO接口获取
目标1出现 = 取随机数 (0, 1) = 1
目标2出现 = 取随机数 (0, 1) = 1
目标3出现 = 取随机数 (0, 1) = 1

如果 (目标1出现)
目标1位置X = 取随机数 (0, 500)
目标1位置Y = 取随机数 (0, 500)

如果 (目标2出现)
目标2位置X = 取随机数 (0, 500)
目标2位置Y = 取随机数 (0, 500)

如果 (目标3出现)
目标3位置X = 取随机数 (0, 500)
目标3位置Y = 取随机数 (0, 500)

子程序名返回值类型公开备 注
鼠标移动点击 整数型 y
' 移动鼠标到指定位置并点击
置鼠标位置 (x, y)
延时 (50)
鼠标按键 (1, 3)  ' 左键按下
延时 (50)
鼠标按键 (1, 4)  ' 左键弹起
输出调试文本 ("已点击位置: X=" + 到文本 (x) + ", Y=" + 到文本 (y))






欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4