部分/扩展/截断模板匹配

计算科学 统计数据 图像处理
2021-12-23 11:52:29

因此,使用相关性的模板匹配在很多计算包中都是可用的;OpenCV matchTemplate()、scipy.signal.correlate2d()、IPP CrossCorrNorm 等。

但它们要么评估模板完全位于图像内的偏移量,要么使用边界条件(如填充或环绕)来评估模板悬挂在图像外部的偏移量。我不喜欢这样,因为总的来说,没有充分的理由相信这些不同类型的焊盘会与模板的悬垂部分相关联。

是否有任何实现包括像“截断”这样的边界条件,其中为图像中的所有模板偏移量计算正常的“完全”相关性,而且对于模板突出的所有偏移量,相关性仅针对图像中的模板像素子集?

在极端偏移处,模板和图像将仅共享一个像素,此时归一化相关是未定义的(因为除以 1 个样本的标准差 = 0),但相关表面的那些角可能只是 0。

这样做的好处是即使模板仅部分出现在图像中,也能够匹配模板(见下图)。由调用者决定接受与扩展相关表面边缘的距离(模板的哪一部分)作为匹配项。

对于大小为 HxW 的图像和大小为 hXw 的模板,生成的完全相关表面为 (H-h+1)x(W-w+1),但对于此扩展/动态/部分模板匹配的相关表面将是大小为 (H+h-1)x(W+w-1) (同样,角为 0,因为它们未定义)

我有一个实现,它并不难,但它也没有效率。优化良好的图像相关性很好地利用了重复的和/积。在我花精力优化自己的实现之前,最好知道那里是否已经有一个好的实现。

普通模板匹配仅在模板完全位于图像内时才找到模板; 扩展/部分模板匹配可以找到仅部分位于图像中的模板,方法是仅关联图像内像素,而不使用填充或环绕图像边界之外

0个回答
没有发现任何回复~