【问题标题】:OpenCV/C++ - SIFT keypoint detection and corresponding descriptorsOpenCV/C++ - SIFT 关键点检测和相应的描述符
【发布时间】:2014-08-04 21:29:36
【问题描述】:

我有一张图片。我使用了 Canny 边缘检测器,然后在其上应用了 Sift。

结果如下:

我不明白结果。为什么我在一些黑色区域有一些兴趣点,而不是我期望更多的地方? 另外,圆的大小是指什么?

我在网上查了一下,但不是很清楚,也没有找到任何相关信息。

谁能解释一下?

【问题讨论】:

  • 好吧,我要这么做了!
  • 找不到任何关于SIFT的信息....

标签: opencv detection sift keypoint


【解决方案1】:

SIFT 代表“尺度不变特征变换”。它检测多个尺度的关键点。图片上的圆圈可能是指检测到关键点的比例。

在我看来,黑色区域中的关键点位置并非完全不可能:如果您假设他们看到的区域大约是圆的 2 或 3 倍,那么黑色区域中的关键点会产生更多感觉:它不仅检测黑色区域,还检测到像这样的区域;这是与众不同的:

重要说明关键点并不意味着只有那个确切的点与其他点不同;这意味着该点及其周围环境是特殊的。在 SIFT 的情况下,这意味着即使您缩放图像,SIFT 也能够检测到相同的点(或区域,如果您愿意的话)。如果您愿意,返回的关键点位置就是该区域的“中心”。

【讨论】:

  • 谢谢克里斯的回答,但我不太明白“如果你认为他们看到的区域大约是圆圈大小的 2 到 3 倍,而不是黑色的关键点区域更有意义。”你能试着用另一种方式解释吗?因为,在黑色区域,它们没有什么可以检测到的不是吗?对于你的评论,是的,我明白了。我知道 Sift Detect 只检测可以在其他图像中比较的特定点。
  • 我更好理解。所以这个黑色区域是一种关键点,因为它可能是另一张看起来像这张照片的照片中的关键点?但是当我学习Sift时,我看到Sift使用了Harris Detector但是在一个黑色区域,没有任何角落......这就是为什么我有点困惑......
  • 是的,这就是关键点的工作原理:它们只是可以在另一张图像中轻松再次找到的点,使用周围环境来找到它们,并且主要使用周围环境来描述它们
  • @lilouch 圆圈大小很可能代表找到关键点的比例。圆圈越大,金字塔的位置就越高。尝试重新缩放图像(可能缩小到 1/8 宽度和高度),然后您可能会明白为什么该位置不仅仅是黑色区域而是某种特征。
  • @Micka Okey 我明白了!我标准化了我的图片并再次应用了 Sift,结果在这里Here 确实我没有任何大圆圈...这对我来说有点困惑,但谢谢!
猜你喜欢
  • 1970-01-01
  • 2019-01-13
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
  • 2015-01-01
  • 2012-12-30
  • 2017-04-23
  • 2015-02-01
相关资源
最近更新 更多