匹配动画窗口 - MatchAnimationFromPath
函数简介
匹配动画窗口,可用于GIF动画识别,在指定时间内识别动图,查找到立即返回结果,返回相对绑定窗口坐标。
接口名称
MatchAnimationFromPath
DLL调用
long MatchAnimationFromPath(long ola, int x1, int y1, int x2, int y2, string templ, double matchVal, int type, double angle, double scale, int delay, int time, int threadCount);
参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| ola | 长整数型 | OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。 |
| x1 | 整数型 | 查找区域的左上角X坐标 |
| y1 | 整数型 | 查找区域的左上角Y坐标 |
| x2 | 整数型 | 查找区域的右下角X坐标 |
| y2 | 整数型 | 查找区域的右下角Y坐标 |
| templ | 字符串 | 模板图片的路径,可以是多个图片,如"test.bmp|test2.bmp|test3.bmp" |
| matchVal | 双精度浮点数 | 相似度阈值,范围0-1,如0.85表示85%相似度 |
| type | 整数型 | 匹配类型:1-灰度匹配(速度快);2-彩色匹配;3-透明匹配;4-透明彩色权重匹配;5-普通彩色匹配 |
| angle | 双精度浮点数 | 旋转角度,每次匹配后旋转指定角度继续匹配,角度越小匹配次数越多时间越长,0为不旋转速度最快 |
| scale | 双精度浮点数 | 窗口缩放比例,默认为1,可通过GetScaleFromWindows接口获取 |
| delay | 整数型 | 动画帧间隔,单位毫秒 |
| time | 整数型 | 总识别时间,单位毫秒 |
| threadCount | 整数型 | 用于查找的线程数,需根据delay帧率自行调整,过小会导致识别时间到期未识别完,过大会导致CPU占用过高 |
示例
C++
long instance = CreateCOLAPlugInterFace();
BindWindow(instance, hwnd, 0, 0, 0);
// 在5秒内以100ms间隔匹配动画,4线程
long resultPtr = MatchAnimationFromPath(instance, 0, 0, 0, 0, "anim.bmp", 0.85, 1, 0, 1.0, 100, 5000, 4);
char* result = GetStringFromPtr(instance, resultPtr);
FreeStringPtr(instance, resultPtr);
Python
# 待补充
返回值
字符串指针,返回JSON格式的匹配结果。DLL调用返回字符串指针地址,需要调用 FreeStringPtr 接口释放内存。
返回数据格式:
{
"MatchVal": 0.85,
"MatchState": true,
"Index": 0,
"Angle": 45.0,
"X": 100,
"Y": 200,
"Width": 100,
"Height": 100
}
| 字段名 | 类型 | 说明 |
|---|---|---|
| MatchVal | 浮点数 | 匹配相似度。 |
| MatchState | 布尔 | 是否匹配成功。 |
| Index | 整数 | 结果索引(从 0 开始)。 |
| Angle | 浮点数 | 匹配角度。 |
| X | 整数 | X 坐标。 |
| Y | 整数 | Y 坐标。 |
| Width | 整数 | 宽度。 |
| Height | 整数 | 高度。 |
注意事项
- x1、y1、x2、y2都传0时,将搜索整个窗口客户区
- 识别结果最长等待时间为 time + 1000ms
- 返回的坐标是相对于绑定窗口客户区的坐标
