c++ - 为什么我的 SIFT 实现只能找到平坦区域?

标签 c++ computer-vision sift

我正在尝试编写 SIFT 的实现,作为练习。但是,我遇到了我还没有弄清楚的问题。据我所知,我得到的结果与 SIFT 正好相反:它会找到图像中无趣的平坦区域。我正在使用 VXL。

不管怎样,我对SIFT早期的理解是这样的:

  1. 构建高斯金字塔

  2. 利用这个金字塔,得到一个差分高斯金字塔

  3. 找到所有局部极值以获得潜在的关键点

  4. 没关系,因为我还没有走到这一步。

我有一个 pastebin我的代码,如果有人愿意提供帮助,我将永远感激不已。到目前为止,this是我的算法吐出的结果,在每个检测到的“关键点”的位置都有一个洋红色像素。

最后,标准免责声明,如果我做错了什么或违反了一些行为准则,我深表歉意。

最佳答案

您可以查看 sift 的 opencv 实现是否具有相同的行为: http://docs.opencv.org/modules/nonfree/doc/feature_detection.html#sift

关于c++ - 为什么我的 SIFT 实现只能找到平坦区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11301897/

相关文章:

python - SIFT 实现 Python 错误

c++ - 给定一个排序数组和一个参数 k,求在线性时间内大于或等于 k ​​的两个数之和的计数

c++ - map 的 map 和自定义分配器

c++ - 使用 QString 和 QByteArray 的 QDataStream 问题

opencv - 相机的外部参数是否以世界坐标系表示?

python - Opencv 3.0 - 模块对象没有属性 'xfeatures2d'

c++ - 解引用指向 union 成员的指针

image-processing - 计算机视觉中什么是开闭

machine-learning - 增加 Triplet loss 的 alpha 有什么缺点吗?

图像配准