我想知道,如果我可以更改SIFT描述符维度,那么我该怎么做呢。我知道目前维度为128,我们可以制作128 * 4或124/4这样的东西吗?
更新:我试图在opencv / modules / nonfree / src / sift.cpp中将SIFT_DESCR_WIDTH更改为4,但是当我打印descriptors.size()时它不会改变描述符的维度它打印128。
此致
答案 0 :(得分:1)
在不更改OpenCV源的情况下,无法在OpenCV中更改SIFT维度。因此,您必须更改源并重新编译整个OpenCV或非自由模块。
更改该常量值,然后执行cmake&为OpenCV制作。
P.S。实际上,它对你来说不会有太大变化 - 请查看original SIFT paper,图8.
答案 1 :(得分:0)
您可以尝试使用SURF描述符,它支持64维,并且计算速度比SIFT快。