

这是模板匹配代码
create_ncc_model (Image, 'auto', 0, rad(360), 'auto', 'use_polarity', ModelID)
find_ncc_model (Image2, ModelID, 0, rad(360), 0.8, 1, 0.5, 'true', 0, RowRef, ColumnRef, Anglelef, Score)
为什么这两张明明不一样的图片得到的score是1.0,这个score到底是怎么算的


这是模板匹配代码
create_ncc_model (Image, 'auto', 0, rad(360), 'auto', 'use_polarity', ModelID)
find_ncc_model (Image2, ModelID, 0, rad(360), 0.8, 1, 0.5, 'true', 0, RowRef, ColumnRef, Anglelef, Score)
为什么这两张明明不一样的图片得到的score是1.0,这个score到底是怎么算的
关注引自免费微信小程序:皆我百晓生
在使用HALCON进行模板匹配时,score值是通过计算目标图像与模板图像之间的相似度得出的。当两张图片完全一样时,理论上得到的score值应该接近或等于最大值(通常是基于灰度值、特征匹配或其他度量方法),而您提到的案例中,完全不同的两张图片得分却是高值,这在常理上可能存在问题。我们需首先明确得分不是通过简单直观的特征(如您描述的图片是否完全一样)来计算的。HALCON的模板匹配算法会考虑图像间的多种特征匹配程度,包括灰度值、边缘、纹理等。即使图像在视觉上差异很大,在某些特征上可能仍具有很高的相似性。所以仅凭直觉可能难以解释这一现象。然而可能存在如下情况使得模型错误判断图片:这里涉及到图像预处理、模型创建和匹配过程的细节问题。让我们逐一分析可能的原因:
**模型创建的方式与输入图像的对比度、光照等因素可能相关。**当使用不同的参数进行create_ncc_model创建模型时,它可能会基于图像中的某些特征进行建模,这些特征可能在视觉上并不明显或不容易被人所感知,但它们确实影响了模型的构建。特别是在自适应处理光照条件变化时可能会自动调整一些特性使得相似度得分计算产生误差。请检查您创建模型时所用的参数是否适当,并尝试使用不同的参数组合来创建模型。
**图像预处理的不同可能导致结果不一致。**在模板匹配之前,确保对输入图像和模板图像进行了相同的预处理步骤(如缩放、旋转校正等),因为任何不一致的预处理都可能导致匹配失败或产生意外的结果。检查您的代码中是否有对图像进行适当的预处理步骤,并确保这些步骤的一致性。
为了帮助您更好地分析和解决问题,请考虑以下几点建议:
create_ncc_model和find_ncc_model函数的参数设置是否正确和适当。确保模型是基于正确和稳定的特征创建的。尝试调整参数以获取更可靠的结果。比如使用更严格的一致性要求或对特征更加敏感的参数配置等。这可能包括修改模板大小适应性、缩放处理以及其他预处理操作等参数。比如可以更改一些参数的阈值如最小尺寸(MinDimension)和最大尺寸(MaxDimension)等。这些参数可以帮助HALCON更好地适应不同大小的目标模板。此外,确保图像预处理步骤的一致性也非常重要。例如使用相同的颜色空间转换、对比度调整等步骤对图像进行预处理以确保准确性。如果您没有使用过这些参数或者不确定如何设置它们可以参考HALCON提供的官方文档或者寻求专业帮助来获取指导建议或参考设置这些参数的具体值以获得更好的匹配效果。