为什么我的 SIFT 实现只找到平坦区域
Why is my SIFT implementation only finding flat regions?
我正在尝试编写SIFT的实现,只是作为一种练习。但是,我遇到了我还无法弄清楚的问题。据我所知,我得到的是与SIFT相反的:它找到了图像中无趣的平面区域。我正在使用 VXL。
无论如何,我对SIFT早期阶段的理解如下:
-
建造瓜斯金字塔
-
使用此金字塔,得到高斯差
金字塔 查找所有局部极值以获取潜在关键点
没关系,因为我没有走到这一步。
我有我的代码,如果有人愿意帮助,我将永远感激不尽。到目前为止,这就是我的算法吐出的内容,在每个检测到的"关键点"的位置都有一个洋红色像素。
最后,标准免责声明,如果我做错了什么或违反了一些行为准则,我深表歉意。
您可以看到 sift 的 opencv 实现是否具有相同的行为:http://docs.opencv.org/modules/nonfree/doc/feature_detection.html#sift
对于任何有这个问题的人:我相信这是因为你弄错了模糊常数。我也犯了错误。
BLUR_i+1_oct(j) = BLUR_i_oct(j)*BLUR_STEP_CONSTANT;
BLUR_0_oct(j+1) = 2*BLUR_0_oct(j);
例如 Sigma = 1.5,模糊应为:
1 -> 1.5 -> 1.5^2 -> 1.5^3 -> 1.5^4
2 -> 2*1.5 -> ...
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 我的字符计数代码计算错误.为什么
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- cmake在我的项目中所需的所有静态库都不成功
- 为什么我的代码在输出中增加了93天
- 我的简单if-else语句是如何无法访问的代码
- 为什么我的for循环不能正确获取argv
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 0-1背包代码中的错误.我的代码中有什么错误
- 当我的阵列太大时出现分段错误
- 如何确认我的constexpr表达式实际上已经在编译时执行
- 为什么二进制搜索在我的测试中不起作用
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 如何获取我的环境的当前区域设置
- 与时间相关的信息在我的区域设置中有上限吗
- 如何获取我的区域设置的空格字符串?
- 为什么我的 SIFT 实现只找到平坦区域
- 为什么在解析字符串时使用我的windows区域设置(_tcstod)