我想知道,如果我可以更改 SIFT 描述符维度,如果可以,我该怎么做。我知道目前尺寸是 128,我们可以做成 128*4 或 124/4 这样的尺寸吗?
更新:我试图将 SIFT_DESCR_WIDTH 更改为 2,从 opencv/modules/nonfree/src/sift.cpp 中的 4,但它不会更改描述符的维度,当我打印 descriptors.size() 它打印128.
问候,
最佳答案
如果不更改 OpenCV 源,则无法在 OpenCV 中更改 SIFT 维度。因此,您必须更改源代码并重新编译整个 OpenCV 或非自由模块。
更改该常量值,然后为 OpenCV 执行 cmake 和 make。
附言实际上,它对您来说不会有太大变化 - 检查 original SIFT paper ,图 8。
关于c++ - SIFT 描述符维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22339834/