You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用AHK或Pulover Macro Recorder检测指定区域内图像出现次数?

屏幕特定区域内目标图像计数并保存为变量的实现方案(Pulover Macro Creator + AHK)

完全可行,Pulover Macro Creator(下称PMC)基于AutoHotkey(AHK)开发,内置图像识别与变量操作功能,刚好能满足你的需求。以下是具体实现方法,分可视化操作和代码解析两部分,适合新手理解:

一、用Pulover可视化操作实现

  1. 打开PMC新建宏,从左侧动作列表里找到「Image & Color」分类下的**Find Image (Multiple)**动作,添加到宏序列中:
    • 点击「Select Region」,拖动鼠标框选你需要检测的屏幕特定区域;
    • 点击「Capture Image」,截取你要计数的目标图像(建议截取无多余背景的纯目标区域,提升识别精度);
    • 在「Options」栏勾选「Store count in variable」,输入变量名(比如ImageCount,方便后续调用)。
  2. 添加输入动作:在「Input」分类下找到Send动作,输入框里填%ImageCount%(AHK中用%包裹变量来读取其值),这样运行宏时就会把计数结果键入到当前激活的窗口。
  3. 保存宏后直接测试运行即可。

二、对应AHK代码解析(帮你理解底层逻辑)

PMC本质是帮你生成AHK代码,以下是核心逻辑的代码示例,你可以对照PMC生成的代码参考:

#SingleInstance Force

; 替换为你截取的目标图像路径(PMC会自动生成这个路径)
TargetImage := "C:\Users\YourName\Documents\Pulover's Macro Creator\Images\target.png"
; 替换为你框选的检测区域坐标,格式:左上角X,左上角Y,右下角X,右下角Y
DetectArea := "100,100,800,600"

ImageCount := 0
; 第一次查找图像
ImageSearch, FoundX, FoundY, %DetectArea%, *0 %TargetImage%
; 循环查找直到找不到为止,每找到一次计数+1
While ErrorLevel = 0 {
    ImageCount++
    ; 从已找到图像的下一个位置继续查找,避免重复计数
    ImageSearch, FoundX, FoundY, FoundX+1, FoundY+1, %DetectArea%, *0 %TargetImage%
}

; 将计数结果输入到当前窗口
SendInput, %ImageCount%

关键参数说明:

  • *0:表示允许的颜色偏差值为0(即严格匹配颜色),如果识别不稳定,可以改成*20(允许20%颜色偏差);
  • ErrorLevel:AHK内置变量,ImageSearch找到图像时返回0,没找到返回1,用来判断循环是否继续。

注意事项

  • 目标图像尽量清晰,避免复杂背景,必要时可以用图像编辑工具去除多余背景;
  • 检测区域范围越小,识别速度越快、精度越高;
  • 如果目标图像有轻微变形,可以尝试添加*Icon参数(ImageSearch命令后加*Icon),允许一定的形状偏差。

内容的提问来源于stack exchange,提问作者Yu Shu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 15:13:24