OpenCV KeyPoint:有关角度和八度的信息

hay*_*art 6 opencv

我想更多地了解KeyPoints,所以有人能告诉我它是什么


关键点::角

在OpenCV文档中提到了角度是计算关键点的方向(如果不适用则为-1).我无法想象它是什么.所以任何人都可以说我的意思或带来一个小例子.


关键点::八度

在OpenCV文档中提到了八度音程是八度音程(金字塔层),从中提取了关键点.我无法想象它是什么.所以任何人都可以说我的意思或带来一个小例子.

Sam*_*Sam 5

如果您真的想了解基础知识,请转到基础知识:

http://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf

它是关于图像特征描述/提取的第一篇,也是最有影响力的论文之一。您可能会发现它有点难以下咽,但它为复杂问题提供了很好的解释。

  • 虽然本文涉及 SIFT,但应该注意的是,OpenCV 提供了其他特征检测算法,如 SURF,它们也返回这些关键点。概念还是一样的。 (3认同)

rba*_*dar 5

如果有人不想阅读@sammy 提到的 Lowe 的论文,这里有一些简短的简历:

  • 图像金字塔(参见OpenCV 文档维基) 基本上是基于单个图像的一组图像,我们对其进行了多次下采样和缩小。这种金字塔的一个例子是高斯金字塔。由于各种原因,我们在特征检测和匹配中使用金字塔。过去已经注意到,将图像降采样并将图像缩小到某个级别并不意味着我们会丢失特征匹配所需的所有特征,实际上它通常会去除一些噪声。高分辨率(不要与图像的宽度和高度混淆!)通常也不是我们需要的东西,因为(维基百科)更高分辨率也意味着图像中的更多细节,但更多细节也意味着需要更多的处理能力,如果您在智能手机等低性能和低功耗平台上运行您的应用程序,这将是一个杀手。如果你把它与你的图像(尺寸)的巨大比例结合起来,整个事情会变得更糟。当然,这取决于图像和金字塔的层数。正如我们所知,下采样以某种方式改变了图像中的像素。每个特征由一个关键点和一个描述符描述。由于下采样特征时像素的变化也会发生变化,因此它们的描述符和关键点也会发生变化。这就是为什么关键点必须将信息存储在它提取的图像金字塔中的哪个级别。请注意,创建图像金字塔需要相当数量的资源。但是,当您开始对这些图像执行其他操作(例如匹配)时,这种权衡是合理的。如果你把它与你的图像(尺寸)的巨大比例结合起来,整个事情会变得更糟。当然,这取决于图像和金字塔的层数。正如我们所知,下采样以某种方式改变了图像中的像素。每个特征由一个关键点和一个描述符描述。由于下采样特征时像素的变化也会发生变化,因此它们的描述符和关键点也会发生变化。这就是为什么关键点必须将信息存储在它提取的图像金字塔中的哪个级别。请注意,创建图像金字塔需要相当数量的资源。但是,当您开始对这些图像执行其他操作(例如匹配)时,这种权衡是合理的。如果你把它与你的图像(尺寸)的巨大比例结合起来,整个事情会变得更糟。当然,这取决于图像和金字塔的层数。正如我们所知,下采样以某种方式改变了图像中的像素。每个特征由一个关键点和一个描述符描述。由于下采样特征时像素的变化也会发生变化,因此它们的描述符和关键点也会发生变化。这就是为什么关键点必须将信息存储在它提取的图像金字塔中的哪个级别。请注意,创建图像金字塔需要相当数量的资源。但是,当您开始对这些图像执行其他操作(例如匹配)时,这种权衡是合理的。正如我们所知,下采样以某种方式改变了图像中的像素。每个特征由一个关键点和一个描述符描述。由于下采样特征时像素的变化也会发生变化,因此它们的描述符和关键点也会发生变化。这就是为什么关键点必须将信息存储在它提取的图像金字塔中的哪个级别。请注意,创建图像金字塔需要相当数量的资源。但是,当您开始对这些图像执行其他操作(例如匹配)时,这种权衡是合理的。正如我们所知,下采样以某种方式改变了图像中的像素。每个特征由一个关键点和一个描述符描述。由于下采样特征时像素的变化也会发生变化,因此它们的描述符和关键点也会发生变化。这就是为什么关键点必须将信息存储在它提取的图像金字塔中的哪个级别。请注意,创建图像金字塔需要相当数量的资源。但是,当您开始对这些图像执行其他操作(例如匹配)时,这种权衡是合理的。这就是为什么关键点必须将信息存储在它提取的图像金字塔中的哪个级别。请注意,创建图像金字塔需要相当数量的资源。但是,当您开始对这些图像执行其他操作(例如匹配)时,这种权衡是合理的。这就是为什么关键点必须将信息存储在它提取的图像金字塔中的哪个级别。请注意,创建图像金字塔需要相当数量的资源。但是,当您开始对这些图像执行其他操作(例如匹配)时,这种权衡是合理的。
  • 关键点角度与关键点表示的特征的方向有关。关键点实际上不是单个像素,而是特征内的一个小区域(调用 .pt.x 和 .pt.y 只是返回关键点的中心),因此当改变它的方向时,像素会从关键点的角度改变它们的位置. 想象一下,您有一栋带有门、屋顶等的房子。我们提取了该房子的一些特征。然后我们将相机倒置并从完全相同的位置拍摄一张新照片。如果特征提取器支持方向,我们应该得到(几乎)与我们在改变相机方向之前拍摄的图片相同的特征(因此相同的关键点)。如果特征提取器没有 支持方向,我们可能会丢失大部分以前检测到的功能和/或获得新功能。

我推荐阅读“学习 OpenCV”。它在 OpenCV 的 API 方面已经过时,但那里讨论的理论确实得到了很好的解释。