如何确定两个边缘图像是否匹配

时间:2013-05-07 21:21:02

标签: c++ opencv computer-vision

我正在使用背景减法来查看是否有东西进入了我的相机的视点。有时候,这是可靠的,但有时候照明的某些变化会导致背景减法器失败。我试图过滤掉这些案例,我的一个想法就是看边缘图像。

基本上,我想比较存储的背景图像和当前图像中感兴趣区域中的边缘图像。如果背景减法失败的原因是光照变化,则应粗略地保留边缘。相比之下,在相机前面的人会真正改变边缘图像,因此它与存储的背景图像相匹配。

以下是两种情况下边缘图像的结果:enter image description here

有两种情况。在左侧,有一个人在相机前面的边缘图像和存储的背景没有人。下面是这两张图片的XOR,这是一个很大的混乱(如预期的那样)。这应该是一场糟糕的比赛,所以这很好。

在右侧,有发生照明变化的场景的边缘图像,旁边是存储的背景图像。这些边缘图像看起来非常相似,所以它们应该是很好的匹配。但是,如果你在XOR图像下面看它,你会发现XOR图像中有很多像素。这使得当前场景下的XOR成为匹配边缘图像的不良选择。

我已经用高斯模糊了图像,但仍然得到了这些结果。如何匹配这些图像以确定给定图像的边缘图像是否与存储背景的边缘图像相似?

感谢您的任何建议!

1 个答案:

答案 0 :(得分:1)

你试过the Hausdorff distance吗?可以找到更多信息here。此解决方案还有一个副本here