cv - 图片多模板特征检测 (:cv_detect_templates)
声明
结果集合, 可视化图像 = 图片:cv_detect_templates(小图片模板集合及选项)
参数
-
小图片模板集合及选项
可选参数,表型,表内每个顺序元素都是一个图片对象,命名字段是选项选项字段
{
should_visualize = false | true, -- 可选字段,是否可视化输出,默认 false
detector = 0 | 1 | 2, -- 可选字段,特征检测器,0: ORB, 1: SIFT, 2: SURF,默认 0: ORB
score_thresh = number_value, -- 可选字段,百分制特征点匹配得分阈值,默认 90
}
返回值
-
结果集合
表型,图片上检测到的模板特征的信息集合检测结果集合结构
{
{ -- 结果 1
{ -- 结果 1 顶点 1
["y"] = number_value,
["x"] = number_value,
},
{ -- 结果 1 顶点 2
["y"] = number_value,
["x"] = number_value,
},
{ -- 结果 1 顶点 3
["y"] = number_value,
["x"] = number_value,
},
{ -- 结果 1 顶点 4
["y"] = number_value,
["x"] = number_value,
},
confidence = number_value, -- 结果 1 所有特征点综合置信度
angle = number_value, -- 旋转角度
index = number_value, -- 匹配的模板在小图片模板集合中的索引
},
{ -- 结果 2
{ -- 结果 2 顶点 1
["y"] = number_value,
["x"] = number_value,
},
{ -- 结果 2 顶点 2
["y"] = number_value,
["x"] = number_value,
},
{ -- 结果 2 顶点 3
["y"] = number_value,
["x"] = number_value,
},
{ -- 结果 2 顶点 4
["y"] = number_value,
["x"] = number_value,
},
confidence = number_value, -- 结果 2 所有特征点综合置信度
angle = number_value, -- 旋转角度
index = number_value, -- 匹配的模板在小图片模板集合中的索引
},
...
} -
可视化图像
图片对象,当 options.should_visualize 为 true 时,这个返回值是可视化返回值,它是个图片对象
说明
从图片中检测出小图片模板集合中的图片特征,可用于形变旋转后的特征检测
每个小图片模板只会匹配到分数超过 score_thresh 的最优结果
20250625 以上版本支持
注意
参数中的 score_thresh 与返回值中的 confidence 有区别
score_thresh 是用于筛选特征点,confidence 是模板所有特征点综合置信度
示例
local cv = require("image.cv")
local img1 = image.load_file(XXT_SCRIPTS_PATH..'/1.png')
local img2 = image.load_file(XXT_SCRIPTS_PATH..'/2.png')
local results, visimg = screen.image():cv_detect_templates({
img1, img2;
score_thresh = 90,
detector = 1, -- SIFT
should_visualize = true, -- 是否可视化输出,为 true 则第二个返回值是一张图片
})
nLog(results) -- 输出检测结果信息
dialog():add_image(visimg):show() -- 可视化查看检测结果图片