2

在 SIFT 算法中,梯度方向直方图的条目是高斯加权的,这样离关键点中心越远的方向对直方图的贡献就越小。这可以在OpenCV SIFT 源代码中的函数“ori_hist”中看到。我想摆脱这种加权,以便所有梯度方向对直方图的贡献相同。

本质上,我需要更改以下行

w = exp( -( i*i + j*j ) / exp_denom );

w = 1

是否有 Python 绑定可以让我这样做?还是我只是运气不好?

4

1 回答 1

0

下载 OpenCV 2.4.4 的源代码。在文件中进行必要的更改(C++),构建并安装它。我曾经遇到过卡尔曼滤波器(在 Python 中)的问题,为了调试,我在 OpenCV 源代码中添加了一些打印语句并重新构建了它。有效。

由于 Python 绑定是由 ctypes 制成的,因此如果您更改 C++ 代码并构建它,它将在 Python 中工作。

因此,如果您了解 C++,并且知道您想要更改什么,那么您可以自己完成。

于 2013-03-21T05:22:26.547 回答