匹配图片5 - MatchImagePtrFromPathAll
函数简介
匹配所有符合模板图片的位置信息
返回数据类型解析:
[{
"MatchVal": 0.85,//数据相似度
"MatchState": true,//返回数据是否大于指定精度,用于快速判断识别结果
"Index": 0,//多图识别时的返回索引
"Angle": 45.0,//识别结果角度
"X": 100,//识别结果X坐标
"Y": 200,//识别结果Y坐标
"Width":100,//识别结果宽度
"Height":100//识别结果高度
}]
接口名称
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(整型数): 匹配类型:- 1:灰度匹配,速度快
- 2:彩色匹配
- 3:透明匹配
- 4:透明彩色权重匹配
- 5:普通彩色匹配
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.85,//数据相似度
// "MatchState": true,//返回数据是否大于指定精度,用于快速判断识别结果
// "Index": 0,//多图识别时的返回索引
// "Angle": 45.0,//识别结果角度
// "X": 100,//识别结果X坐标
// "Y": 200,//识别结果Y坐标
// "Width":100,//识别结果宽度
// "Height":100//识别结果高度
// },
// {
// "MatchVal": 0.85,//数据相似度
// "MatchState": true,//返回数据是否大于指定精度,用于快速判断识别结果
// "Index": 0,//多图识别时的返回索引
// "Angle": 45.0,//识别结果角度
// "X": 100,//识别结果X坐标
// "Y": 200,//识别结果Y坐标
// "Width":100,//识别结果宽度
// "Height":100//识别结果高度
// }]
// 使用完后释放图片内存
ola.FreeImagePtr(sourceImg);
返回值
字符串: 返回JSON数组格式的匹配结果,每个元素包含以下字段:
MatchVal(双精度浮点数): 实际匹配的相似度值MatchState(boolean): 是否匹配成功Index(整型数): 多图匹配时的图片索引,从0开始Angle(双精度浮点数): 匹配到的图像旋转角度X: 匹配点X坐标Y: 匹配点Y坐标Width: 匹配模板宽度Height: 匹配模板高度
注意:
- 多图识别时,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,
"X": 100,
"Y": 200,
"Width":100,
"Height":100
},
{
"MatchVal": 0.85,
"MatchState": true,
"Index": 0,
"Angle": 45.0,
"X": 100,
"Y": 200,
"Width":100,
"Height":100
}
]
注意:
多图识别时Index字段标识是第几个图片返回的结果索引从0开始
DLL调用返回字符串指针地址,需要调用 FreeStringPtr接口释放内存
