跳到主要内容

检测图像/文本

在某些游戏或任务中,屏幕上坐标的位置总是在变化,这时使用图像检测和文本检测就显得尤为重要。对于图像检测,我们使用所谓的模板,也就是需要在屏幕上查找的那部分图像。至于文本检测,屏幕上出现的任何文本都可以被检测到。

图像检测

在使用图像检测之前,您需要在设备屏幕上截取一个模板,要截取模板,您可以按照以下步骤操作:

1. 点击截取模板

Home Page

2. 截取用于检测的屏幕区域

Home Page

3. 保存您的图像模板

Home Page

保存模板图像后,我们就可以使用该模板执行图像检测。对于图像检测,您可以使用 Screen:click()。例如

等效代码

# click 'stop-button.jpg'
Screen:click('stop-button.jpg');

等效块构建器

文本检测

对于文本检测,您可以使用 Screen:click() 方法,但需要在第二个参数中传入 ClickParams():setDetectionType('TEXT') 来修改点击行为。setDetectionType 仅接受 2 个值:TEXTIMAGE,默认检测类型为 IMAGE。因此,要执行文本识别,您需要将 setDetectionType 的值改为 TEXT。例如

等效代码

Screen:click('your text', ClickParams():setDetectionType('TEXT'):setDetectionMethod(1))

等效块构建器

如果您仔细观察,会发现有 2 种文本检测方法:

  1. 逐词检测(默认) 如果您使用此方法,文本检测会将匹配结果拆分为多个单词片段,在这种情况下,最佳场景是您只想检测 1 个单词
  2. 逐行检测 如果您使用此方法,文本检测会将匹配结果拆分为多个行片段,在这种情况下,最佳场景是您想同时检测 2 个或更多单词

要更改检测方法,您可以修改 setDetectionMethod() 的值。此函数的参数为:

  • 1 表示逐词检测
  • 2 表示逐行检测

下一步

当您熟悉了基础检测后,请阅读检测策略,了解在更高级的宏中何时使用 ScreenRegion、图像检测、文本检测、动态缩放、灰度和分数调优。