匹配绑定窗口图片7 - MatchWindowsThresholdFromPathAll
函数简介
二值化后匹配符合模板图片的坐标,返回相对绑定窗口坐标坐标
x1 , y1, x2, y2传 0, 0, 0, 0 为窗口整个客户区
返回数据类型解析:
[{
"MatchVal": 0.85,//数据相似度
"MatchState": true,//返回数据是否大于指定精度,用于快速判断识别结果
"Index": 0,//多图识别时的返回索引
"Angle": 45.0,//识别结果角度
"X": 100,//识别结果X坐标
"Y": 200,//识别结果Y坐标
"Width":100,//识别结果宽度
"Height":100//识别结果高度
}]
接口名称
MatchWindowsThresholdFromPathAll
DLL调用
long MatchWindowsThresholdFromPathAll(long ola, int x1, int y1, int x2, int y2, string colorJson, string templ, double matchVal, double angle, double scale)
参数定义:
ola(长整型数): OLAPlug对象的指针,由DLL版本 CreateCOLAPlugInterFace 接口生成x1(整型数): 查找区域的左上角X坐标y1(整型数): 查找区域的左上角Y坐标x2(整型数): 查找区域的右下角X坐标y2(整型数): 查找区域的右下角Y坐标colorJson(字符串): 颜色模型配置字符串,用于限定图像匹配中的颜色范围,格式说明见 颜色模型说明 - ColorModel。JSON格式示例:[{"StartColor":"3278FA","EndColor":"6496FF","Type":0}];简化格式示例:3278FA-000000|6496FF-202020或3278FA~6496FF或FF0000|00FF00templ(字符串): 模板图片的路径,支持多个图片,用"|"分隔,如"test.bmp|test2.bmp|test3.bmp"matchVal(双精度浮点数): 相似度阈值,范围0-1,如0.85表示85%相似度angle(双精度浮点数): 旋转角度,每次匹配后旋转指定角度继续匹配,直到匹配成功。角度越小匹配次数越多,时间越长。0为不旋转,速度最快scale(双精度浮点数): 窗口缩放比例,默认为1。可通过GetScaleFromWindows接口获取当前窗口缩放
示例:
// 创建OLA对象
long ola = CreateCOLAPlugInterFace();
// 定义颜色范围列表
string colorJson = "[{\"StartColor\":\"3278FA\",\"EndColor\":\"6496FF\",\"Type\":0}]";
// 执行匹配
long ret = MatchWindowsThresholdFromPathAll(ola, 0, 0, 0, 0, colorJson, "test.bmp|test2.bmp", 0.85, 45.0, 1.0);
// 检查操作是否成功
if (ret != 0) {
// 获取匹配结果
char* result = (char*)ret;
printf("匹配结果: %s\n", result);
// 释放返回的字符串内存
FreeStringPtr(result);
} else {
// 匹配失败
}
示例:
// 定义颜色范围列表
string colorJson = "[{\"StartColor\":\"3278FA\",\"EndColor\":\"6496FF\",\"Type\":0}]";
// 执行匹配
string result = ola.MatchWindowsThresholdFromPathAll(0, 0, 0, 0, colorJson, "test.bmp|test2.bmp", 0.85, 45.0, 1.0);
// 检查操作是否成功
if (!result.empty()) {
// 匹配成功,result包含匹配结果
cout << "匹配结果: " << result << endl;
} else {
// 匹配失败
}
返回值
字符串: 返回JSON格式的匹配结果数组,每个匹配结果包含以下字段:
{
"MatchVal": 0.85,//数据相似度
"MatchState": true,//返回数据是否大于指定精度,用于快速判断识别结果
"Index": 0,//多图识别时的返回索引
"Angle": 45.0,//识别结果角度
"X": 100,//识别结果X坐标
"Y": 200,//识别结果Y坐标
"Width":100,//识别结果宽度
"Height":100//识别结果高度
}
注意事项
- 当x1, y1, x2, y2都传0时,将搜索整个窗口客户区
- 颜色值使用十六进制格式,不包含#前缀
- 支持多个模板图片,用"|"分隔
- 角度参数影响匹配时间和精度:
- 角度越小,匹配次数越多,时间越长
- 角度为0时速度最快,但可能错过旋转的目标
- 缩放比例应与窗口实际缩放比例一致
- DLL调用返回的字符串指针需要调用 FreeStringPtr 释放内存
- 返回的坐标是相对于绑定窗口客户区的坐标
相关函数
- GetScaleFromWindows: 获取窗口缩放比例
- FreeStringPtr: 释放字符串内存
- MatchWindowsFromPathAll: 普通图片匹配
