Halcon——模板匹配之相关性匹配

文章目录

    • determine_ncc_model_params(Template : : NumLevels, AngleStart, AngleExtent, Metric, Parameters : ParameterName, ParameterValue)
    • create_ncc_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, Metric : ModelID)
    • find_ncc_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels : Row, Column, Angle, Score)
    • Others

determine_ncc_model_params(Template : : NumLevels, AngleStart, AngleExtent, Metric, Parameters : ParameterName, ParameterValue)

define_ncc_model_params从模型图像模板自动确定NCC模型的某些参数。可以使用参数指定要确定的参数。当create_ncc_model中的各个参数设置为’auto’时,可以使用define_ncc_model_params确定自动确定的相同参数:金字塔等级的数量(Parameters =‘num_levels’)和/或角度步长(Parameters ='angle_step “)。通过在参数中传递上述值的元组,可以确定这些参数的任意组合。如果应确定上述所有参数,则可以传递值Parameters = “ all”。

create_ncc_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, Metric : ModelID)

参数Metric确定在图像中识别模型的条件。

  • 如果Metric =‘use_polarity’,则图像和模型中的对象必须具有相同的对比度。例如,如果模型是深色背景上的明亮对象,则仅当该对象也比背景明亮时才能找到该对象。
  • 如果Metric =‘ignore_global_polarity’,则即使对比度全局反转,也会在图像中找到对象。因此,在上面的示例中,如果对象比背景暗,也会找到该对象。在这种情况下,find_ncc_model的运行时间将略有增加。

find_ncc_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxOverlap, SubPixel, NumLevels : Row, Column, Angle, Score)

  • SubPixel确定是否应以亚像素精度提取实例。如果SubPixel设置为“ false”,则仅以像素精度和用create_ncc_model指定的角度分辨率确定模型的姿势。如果SubPixel设置为“ true”,则以亚像素精度确定位置和旋转。在此模式下,从得分函数中插入模型的姿势。此模式几乎不花费任何计算时间,并且可以实现高精度。因此,通常应将SubPixel设置为“ true”。

  • 如果模型表现出对称性,则可能会在图像中找到多个位置相似但旋转不同的实例。如果模型具有重复结构,则可能会在图像的相似位置找到多个旋转相同的实例。参数MaxOverlap确定两个实例最多可以重叠多少分数(即0到1之间的数字),以便将它们视为不同的实例,因此可以分别返回。如果两个实例彼此重叠的距离大于MaxOverlap,则仅返回最佳实例。重叠的计算基于找到的实例的任意方向的最小包围矩形(请参见smallest_rectangle2)。如果MaxOverlap = 0,则找到的实例可能根本不重叠,而对于MaxOverlap = 1,则返回所有实例。

Halcon——模板匹配之相关性匹配_第1张图片

上述公式则为匹配算法公式 可以按到公式以均值和标准差进行计算 它的取值介于-1和1之间。相关的绝对值越大,模板与图像之间的对应程度就越大。具体关系符合下式
在这里插入图片描述
由于上述特性,NCC结果对于线性照度变化是不变的。
如果已经使用Metric ='use_polarity’创建了NCC模型,则使用上面定义的NCC。如果已使用Metric ='ignore_global_polarity’创建了模型,则将ncc(r,c)的绝对值用作得分。

但是NCC匹配无法对非线性照度变换进行很好的匹配,局部对比度变换也会造成匹配效果不理想。

Others

  • create_ncc_model 莫名其妙报错问题:有可能是金字塔层数太高导致待匹配图片携带信息过少。

  • 选择NumLevels,以使模型仍然可识别,并且在最高金字塔等级上包含足够数量的点(至少八个)。可以使用gen_gauss_pyramid的输出图像的域来检查。

  • 可以使用get_ncc_model_params查询自动计算的角度步长。

  • 相关性匹配可以很好地适应失焦情况 相关例子find_ncc_model_defocused_precision.hdev

Halcon——模板匹配之相关性匹配_第2张图片

你可能感兴趣的:(Halcon,Halcon,相关性匹配,NCC)