1

我正在实现 SURF 算法,我指的是 Chris Evan 的 OpenSURF 。

在 OpenSURF 和几乎所有其他 SURF 实现中,我看到当计算 Dxx 和 Dyy 时,使用了乘数 3(请看下面的代码)。SURF 论文或 OpenSURF 论文中没有提到他们这样做的原因。我做同样的事情没有问题,但我很想知道为什么要进行这种乘法。如果它对 Dxx 和 Dyy 计算很重要,那么为什么在任何地方都没有提到它?我错过了吗?有这方面经验的人可以给我一些解释吗?问候

Dxx and Dyy along with Dxy are used to calculate the Determinant
Dxx = BoxIntegral(img, r - l + 1, c - b, 2*l - 1, w)
          - BoxIntegral(img, r - l + 1, c - l / 2, 2*l - 1, l)*3; // Why 3 here?

Dyy = BoxIntegral(img, r - b, c - l + 1, w, 2*l - 1)
          - BoxIntegral(img, r - l / 2, c - l + 1, l, 2*l - 1)*3; // Why 3 here?
4

1 回答 1

2

您应该参考 2008 年发布的更新论文,该论文提供了更多详细信息,特别是有关盒式过滤器叶片属性的信息。

如果您参考第 3.2 节和图 2,您可以看到箱式过滤器的中央波瓣(黑色)的负因子为 ,-2而白色侧叶的正因子为+1

使用上述公式3,由于积分图像,该因子仅与以下事实相关:

  • 你总结+1了整个区域,
  • -3然后你只对中央叶执行减法(用)

这为您-2提供了中央叶 ( 1 - 3) 的预期因子。

于 2013-02-15T10:41:55.573 回答