跳到主要内容

Check Region(检查区域)

按规则检查屏幕上的一个矩形——无需模板图像。

用途

不用任何截取图像就检查一个矩形:它够亮吗、是对的平均颜色吗、某个像素是什么颜色,或它自上次检查以来变了吗

用来检测没有明显图标的状态——血条清空、界面渐入、灯亮起、某区域在动。

何时用

  • 检测条、仪表、量表的水平变化。
  • 确认界面渐入或渐出。
  • 检测某区域任何动作,不需要知道它长什么样。
  • 检查状态灯或颜色编码指示器。

何时不用

  • 找图标或按钮——用 Find Image
  • 读一个值——用 Read Text
  • 在繁忙、细节多的区域上。 对复杂区域取平均会冲掉信号。

前提

已连接的设备。不需要素材模板——这正是本节点的意义。

如何运行

如同 Find Image未通过不是错误:route 是 Failure 但 status 是 success,所以它永不触发重试或连续失败护栏。

设置

设置类型范围默认作用
Region矩形屏幕百分比必填。 要测量的区域
Rule type选择见下必填。 测量什么
Expectedobject必填。 比较的目标值
Tolerancenumber≥ 0测量可差多远仍算通过
Timeoutinteger100–120000 ms流程默认检查多久
Poll intervalinteger50–5000 ms流程默认多久重抓一次

四种规则

规则测量典型用途
colorAverage区域平均颜色颜色编码面板或指示器
brightness区域平均亮度亮起的条、渐变的界面
pixelColor某个像素的颜色小状态灯
changedSinceLastFrame区域是否与上一轮不同任何动作或动画

changedSinceLastFrame 是有趣的那个

此规则把每次抓取与上一轮抓取比较。你不需要知道区域将长什么样——只需知道它会不同。

这使它成为"等动画停止"或"检测有东西在动"的对的工具,这是任何模板都无法表达的。

Tolerance

0 容差在真实屏幕上几乎从不通过:压缩、抗锯齿和细微渐变使测量从不绝对相等。给余量。

从宽松起步,收紧到它不再在不该通过时通过。

端口

端口走它的时机必接
Success规则通过
Failure超时前未通过(status 仍 success
Cancelled检查中途运行被停否——永不被走
Fatal抓帧失败、区域无效,或规则/期望值无法解析否——永不被走

基础示例

检测血条还亮着:

  • Region:条的一小块
  • Rule:Brightness
  • Expected:0.5
  • Tolerance:0.15

条亮时 Success;灭时 Failure

实际示例——等动画结束

固定的 Wait 是猜。这个是测量:

这里 Failure 是好结果:"区域停止变化"意味着动画结束。这种反向读法在 changedSinceLastFrame 上常见,也是要用心接两个端口的原因。

高级示例——仪表阈值

通过测量条 25% 处的一小块,检测资源条跌破约四分之一:

  • Region:条 25% 标记处的小块
  • Rule:Colour average
  • Expected:条的"空"背景色
  • Tolerance:适中

Success 意味着条不再够到那一点。

它在没有图标、没有文字显示的地方也能运行——正是本节点填补的空档。

最佳实践

  • 区域小、在稳定有代表性的一块上。 对大区域取平均会摧毁信号。
  • 总接 Failure。 未通过从它离开,空端口终止运行。
  • 给 tolerance 真实余量。 零容差是 bug,不是精度。
  • changedSinceLastFrame 做稳定,记住"不再变"到达 Failure。
  • 有图标时优先 Find Image。 模板匹配更专一、更好推理。
  • 两种状态都测。 该通过时通过只是半个检查——确认它在该失败时失败

性能笔记

  • Check Region 比 Find Image 和 OCR 都便宜——它在裁剪上测像素统计,而非匹配或识别。
  • 成本随区域面积。小块很快。
  • 轮询间隔在这里被限 5000 ms(比其他检测节点更紧),因为规则便宜、意在密集采样。
  • changedSinceLastFrame 保留上一轮裁剪用于比较,所以多花一块保留裁剪。

内存笔记

  • 每次轮询抓新帧;帧短暂。
  • 变化规则保留上一轮的裁剪用于比较——受区域大小限制,所以保持区域小。

常见错误

错误后果修复
只接 Success未通过终止运行接 Failure
区域太大信号被平均掉有代表性的小块
Tolerance 为 0真实屏幕从不通过给余量
用它找图标脆弱、不精确Find Image
误读变化规则"稳定"到达 Failure把它接成稳定的成功路径
指望它读值它测像素,非文字Read Text

故障排查

总是通过。 Tolerance 太宽,或区域太杂使平均无论如何都接近期望值。缩小区域。

从不通过。 Tolerance 太紧。放宽并用 Test Node 确认测量值。

变化规则总说"变了"。 区域含时钟、动态背景或闪烁效果。移到静态块。

节点走 Fatal。 区域无效,或期望值对所选规则无法解析。

FAQ

未通过算错误吗? 不——status 保持 success

一个节点检查多个区域吗? 不。每区域一个节点,或值是文本时用多区域 Read Text

changedSinceLastFrame 首轮和什么比? 它需要上一次抓取来比,所以比较从第二轮起才有意义。

比 Find Image 快吗? 是,明显——不涉及模板匹配。

相关节点

  • Find Image——目标有独特外观时
  • Read Text——需要值时
  • Wait——稳定检查的盲替代
  • If——之后在此节点结果上分支

相关页面