如果matchTemplate找到匹配项,则会使用围绕它的矩形显示结果。但是如果MatchTemplate找不到准确的结果该怎么办? 如何处理minmax值?
示例查询图片:
相关代码段:
if ((minValues[0] >= 0.95) || (minValues[0] <= 0.3))
//if ((maxValues[0] >= 0.95))
{
Rectangle rect = new Rectangle(new Point(minLocations[0].X, minLocations[0].Y), new Size(imgTemplate.Width, imgTemplate.Height));
imgSource.Draw(rect, new Bgr(0, 0, 255), 1);
isFoundMatch = true;
ImageViewer.Show(imgSource);
if (isFoundMatch == true)
{
imgSource.Save("C:/Misc/MatchFound/warning.png");
}
}
编辑:我已经检查了图片中没有的模板。但它给出了错误的匹配。
答案 0 :(得分:2)
首先,您需要查看您认为有效的实例和您认为无效的实例的分数。
如果您看到它们之间有明显的分离,那么您可以在分数值上设置一个阈值。但是如果范围之间存在一些重叠,则单独的匹配分数不足以判别。然后,您需要找出额外的标准来区分真假阳性。这些将取决于模式的类型和出现的混淆类型。给出一般规则是不容易的。