SIFT描述符维度

时间:2014-03-12 00:53:33

标签: c++ c opencv sift

我想知道,如果我可以更改SIFT描述符维度,那么我该怎么做呢。我知道目前维度为128,我们可以制作128 * 4或124/4这样的东西吗?

更新:我试图在opencv / modules / nonfree / src / sift.cpp中将SIFT_DESCR_WIDTH更改为4,但是当我打印descriptors.size()时它不会改变描述符的维度它打印128。

此致

2 个答案:

答案 0 :(得分:1)

在不更改OpenCV源的情况下,无法在OpenCV中更改SIFT维度。因此,您必须更改源并重新编译整个OpenCV或非自由模块。

更改该常量值,然后执行cmake&为OpenCV制作。

P.S。实际上,它对你来说不会有太大变化 - 请查看original SIFT paper,图8.

答案 1 :(得分:0)

您可以尝试使用SURF描述符,它支持64维,并且计算速度比SIFT快。