c++ - SIFT 描述符维度

标签 c++ c opencv sift

我想知道,如果我可以更改 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/

相关文章:

c++ - 好友类 'has no member named...'

c++ - 如何将所有 <p> 标签写入文本文件

C++ 检查 cin 的输入是否有正确的数据

c - 堆栈上的变量是 "statically allocated"吗?

c++ - 将 2D 图像坐标转换为 z = 0 的 3D 世界坐标

c# - 是否可以在 C++ 中序列化和反序列化对象?

c - 'C' 程序中的段错误

c - C 中的二分查找 - 当整数不在数组中时错误的退出代码

c++ - 具有 const cv::Mat 类型的参数在功能上会发生变化吗?

python - 多级图像阈值