匹配图片5 - MatchImagePtrFromPathAll
函数简介
匹配所有符合模板图片的位置信息
返回数据类型解析:
{
"MatchVal": 0.85,//数据相似度
"MatchState": true,//返回数据是否大于指定精度,用于快速判断识别结果
"Index": 0,//多图识别时的返回索引
"Angle": 45.0,//识别结果角度
"MatchPoint": {
"x": 100,//识别结果X坐标
"y": 200//识别结果Y坐标
}
}
接口名称
MatchImagePtrFromPathAll
DLL调用
long MatchImagePtrFromPathAll(long ola, long source, string templ, double matchVal, int type, double angle, double scale)
参数定义:
ola
(长整型数): OLAPlug对象的指针,由DLL版本 CreateCOLAPlugInterFace 接口生成source
(长整型数): OLAImage对象的地址templ
(字符串): 模板图片的路径,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"matchVal
(双精度浮点数): 相似度,如0.85,最大为1type
(整型数): 匹配类型:- 灰度匹配,速度快
- 彩色匹配
- 透明匹配
angle
(双精度浮点数): 旋转角度,每次匹配后旋转指定角度继续进行匹配,直到匹配成功,角度越小匹配次数越多时间越长。0为不旋转速度最快scale
(双精度浮点数): 源图缩放比例,默认为1,可以通过GetScaleFromWindows接口读取当前窗口缩放
示例:
// 加载源图片
long sourceImg = ola.LoadImage("source.bmp");
// 匹配所有符合条件的位置,使用灰度匹配,相似度0.85,不旋转
string result = ola.MatchImagePtrFromPathAll(sourceImg, "template.bmp", 0.85, 1, 0.0, 1.0);
// 解析返回的JSON结果
// 返回格式示例:
// [{
// "MatchVal": 0.87, // 第一个匹配位置的相似度
// "MatchState": true, // 是否匹配成功
// "Index": 0, // 多图匹配时的索引
// "Angle": 0.0, // 匹配到的角度
// "MatchPoint": {
// "x": 100, // 匹配位置的X坐标
// "y": 200 // 匹配位置的Y坐标
// }
// },
// {
// "MatchVal": 0.85, // 第二个匹配位置的相似度
// "MatchState": true, // 是否匹配成功
// "Index": 0, // 多图匹配时的索引
// "Angle": 0.0, // 匹配到的角度
// "MatchPoint": {
// "x": 300, // 匹配位置的X坐标
// "y": 400 // 匹配位置的Y坐标
// }
// }]
// 使用完后释放图片内存
ola.FreeImagePtr(sourceImg);
COM调用
string MatchImagePtrFromPathAll(long source, string templ, double matchVal, int type, double angle, double scale)
参数定义:
source
(长整型数): OLAImage对象的地址templ
(字符串): 模板图片的路径,可以是多个图片,比如"test.bmp|test2.bmp|test3.bmp"matchVal
(双精度浮点数): 相似度,如0.85,最大为1type
(整型数): 匹配类型:- 灰度匹配,速度快
- 彩色匹配
- 透明匹配
angle
(双精度浮点数): 旋转角度,每次匹配后旋转指定角度继续进行匹配,直到匹配成功,角度越小匹配次数越多时间越长。0为不旋转速度最快scale
(双精度浮点数): 源图缩放比例,默认为1,可以通过GetScaleFromWindows接口读取当前窗口缩放
返回值
字符串: 返回JSON数组格式的匹配结果,每个元素包含以下字段:
MatchVal
(双精度浮点数): 实际匹配的相似度值MatchState
(boolean): 是否匹配成功Index
(整型数): 多图匹配时的图片索引,从0开始Angle
(双精度浮点数): 匹配到的图像旋转角度MatchPoint
: 匹配位置的坐标x
(整型数): X坐标y
(整型数): Y坐标
注意:
- 多图识别时,Index字段标识是第几个图片返回的结果,索引从0开始
- DLL调用返回字符串指针地址,需要调用 FreeStringPtr 接口释放内存
- 返回结果按匹配相似度从高到低排序
示例:
source = LoadImage("OLA/pic/source.bmp")
ret = MatchImagePtrFromPathAll(source,"OLA/pic/pic.bmp", 0.85, 1, 50.0, 1.0)
messagebox(ret) #ret为json字符串
返回值
字符串:
返回匹配结果,如
[{
"MatchVal": 0.85,
"MatchState": true,
"Index": 0,
"Angle": 45.0,
"MatchPoint": {
"x": 100,
"y": 200
}
},
{
"MatchVal": 0.85,
"MatchState": true,
"Index": 0,
"Angle": 45.0,
"MatchPoint": {
"x": 100,
"y": 200
}
}
]
注意:
多图识别时Index字段标识是第几个图片返回的结果索引从0开始
DLL调用返回字符串指针地址,需要调用 FreeStringPtr接口释放内存