匹配图片4 - MatchImagePtrFromPath
函数简介
匹配符合模板图片的坐标,默认返回最优结果
返回数据类型解析:
{
"MatchVal": 0.85,//数据相似度
"MatchState": true,//返回数据是否大于指定精度,用于快速判断识别结果
"Index": 0,//多图识别时的返回索引
"Angle": 45.0,//识别结果角度
"MatchPoint": {
"x": 100,//识别结果X坐标
"y": 200//识别结果Y坐标
}
}
接口名称
MatchImagePtrFromPath
DLL调用
long MatchImagePtrFromPath(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.MatchImagePtrFromPath(sourceImg, "template.bmp", 0.85, 1, 0.0, 1.0);
// 解析返回的JSON结果
// 返回格式示例:
// {
// "MatchVal": 0.85, // 实际匹配的相似度
// "MatchState": true, // 是否匹配成功
// "Index": 0, // 多图匹配时的索引
// "Angle": 0.0, // 匹配到的角度
// "MatchPoint": {
// "x": 100, // 匹配位置的X坐标
// "y": 200 // 匹配位置的Y坐标
// }
// }
// 使用完后释放图片内存
ola.FreeImagePtr(sourceImg);
COM调用
string MatchImagePtrFromPath(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 接口释放内存