我正在研究空间域中模板匹配的规范化交叉关联。 虽然这个方法很慢,但它对我的目的来说已经足够好了。但我在那里看到了一件奇怪的事情。让我解释下面的情况:
91 91 91 91 9 9
91 91 91 91 9 9
8 6 7 8
图案图像源图像。
现在,当NCC经历这个:它发现模板图像的平均值为91,而基础源图像也为91,然后它从像素中减去强度值,该值基本上将公式中的所有项都归零,从而导致未定义的相关值,即使存在完美匹配,也不会找到匹配项。 如何解决这种情况? 我使用以下公式:来自J. P. Lewis的优秀source
另外,当我修改公式从每个像素强度中减去(平均值/ 2)时,它似乎工作正常,但我担心这个新的相关系数对照明有多大的影响。
编辑:当我拍摄1 X 1图案图像并且在源图像中出现多次时,情况甚至更糟。使用上面的修改版本我无法找到合适的匹配项。我很想看看你们许多人一直在使用的各种工作。谢谢!
答案 0 :(得分:2)
归一化互相关的想法是,如果向每个像素添加任意数字或者将每个像素乘以任意(非负)数,则相似性不会改变。现在在搜索图像中采用任何2x2像素区域,例如
91 9
6 7
将此乘以0并添加91 - 您就完美匹配了。简而言之:您无法使用规范化的互相关匹配“平面”模板。或者搜索图像中的“平坦”区域。
请注意,这不是规范化互相关中的“错误”。你所看到的效果非常有意义。想象一下,有人向你递了一张完全黑色的照片,并问你看到了什么。你的回答不是“我完全匹配蝙蝠车,因为它完全是黑色的”,你的回答是“我不知道,图像中的对比度太小了”。这正是NCC试图通过零划分给你的。
此外,当我修改公式以从每个像素强度减去(平均值/ 2)时
你的意思是,你用均值/ 2代替分子和分母中的均值?这听起来不是一个好主意。如果模板或搜索图像区域仅包含零,则仍然会将除以零。更重要的是:你正在计算一个没有实际意义的数量(至少没有我能想到的数量)。例如,搜索区域的平均亮度将影响匹配结果。
我很想研究各种工作[...]
明显的临时解决方法是在分母中添加少量数据,因此搜索图像中的“平坦”区域不会导致零偏差。然后你得到(或多或少)相似性度量,如果你向每个像素添加一个任意数字或者将每个像素乘以任意(非负数),则不会改变,除非该数字非常接近0 < / em>的
但是,对于任何平面搜索区域或平面模板,这将为您提供0匹配。其中(如上所述)非常有意义。如果在这种情况下需要不同的行为,则不需要规范化的互相关。
另一种相似性度量可能是欧氏距离的平方。在计算差异之前,您可以选择减去模板和搜索区域的平均值。然后,如果向每个像素添加任意数字,则会得到一个不会改变的相似性度量。但如果你将每个像素乘以某个值,它就会改变。