问题标签 [keypoint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3832 浏览

c++ - opencv c++比较不同图像中的关键点位置

通过 比较 2 张图像时feature extraction,您如何比较keypoint距离以忽略那些明显不正确的距离?

我发现在比较相似的图像时,大多数时候它可以相当准确,但其他时候它可以抛出完全独立的匹配。

因此,我正在寻找一种方法来查看keypoints两张图像中的 2 组图像,并确定匹配的图像是否keypoints相对位于两者的相同位置。因为它知道keypoints图像 1 上的 1、2 和 3 相距很远,所以在图像 2 上匹配的相应关键点应该又彼此相距相当相似的距离。

我过去曾使用过RANSACminimum distance检查过,但只是起到了一些作用,它们似乎不像我所追求的那样彻底。

(使用ORBBruteForce

编辑

将“x、y 和 z”更改为“1、2 和 3”

编辑 2——我将尝试通过快速绘制示例进一步解释:

假设我有这个作为我的形象:

在此处输入图像描述

我给它这张图片来比较:

在此处输入图像描述

它是原始版本的裁剪和压扁版本,但显然相似。

现在,假设您运行它feature detection,它返回keypoints了两个图像的以下结果:

在此处输入图像描述在此处输入图像描述

两个图像上的keypoints区域大致相同,并且彼此之间的距离也成比例地相同。拿keypoint我圈出来的,我们称之为“Image 1 Keypoint 1”

在此处输入图像描述

我们可以看到它周围有5个keypoints。它与我想要获得的“图像 1 关键点 1”之间的这些距离,以便将它们与“图像 2 关键点 1”及其keypoints在同一区域的 5 个环绕(见下文)进行比较,以便不只是将 akeypoint与另一个进行比较keypoint,但根据keypoints.

在此处输入图像描述

--

那有意义吗?

0 投票
0 回答
597 浏览

android - OpenCV+Android 关键点检测崩溃

我已经对这个问题进行了大量研究并尝试了所有这些方法,但它们都不起作用,所以是时候讨论一个新主题了。我正在制作一个项目,用户将从设备中选择一张图片,程序将返回相同的图片,并在其上绘制关键点。我之前用openCV制作了另一个程序,现在以完全相同的方式在android上使用它,只是改变了显示它的方式,而不是一个窗口,一个imageView。这是 imageView 的代码:

这应该是捕获关键点并从 imageView 输出带有关键点的选定图片的部分:

并且程序在 LogCat 中因以下行而崩溃:

我提前非常感谢你们。

0 投票
1 回答
3026 浏览

c++ - opencv c++ mat到向量

在寻找这个(1 , 2 , 3 , 4)的答案后,我仍然对这两个问题感到困惑

  • 如果这是可能的
  • 如果是这样,怎么做

我希望能够从.xml已写入cv::Mat包含内容的文件中Point2f keypoints读取,并将其读回其原始状态std::vector<cv::KeyPoint>

我对文件的写入如下所示:

但到目前为止,我完全无法将它读回原来的状态,std::vector<cv::KeyPoint>以便进行keypoint匹配。

有什么帮助吗?

编辑

当前的阅读猜测:

编辑 2

.xml内容:

0 投票
0 回答
983 浏览

c++ - 使用 C++ 和 OpenCV 进行关键点分析

我对以下代码有疑问:

该程序的主要功能是:它读取一个查询图像和一组训练图像。然后,它使用建立的检测器类型(SURF、SIFT、FAST...)检测关键点。之后,它使用已建立的描述符类型(FREAK、SIFT...)提取这些关键点的描述符。最后,根据由变量 matcherType (BruteForce, FlannBased...) 建立的匹配器,给出查询图像和整个训练图像集之间的匹配。我的问题是我试图使用 OpenCV 在其方法中提供的所有检测器、描述符和匹配器类型(变量检测器类型、描述符类型、匹配器类型)。但是,我只得到了少数几个结果。例如,Detector-Descriptor-Matcher "SURF-SURF-FlannBased" 组合对我不起作用,

juan@juan-HP-G62-NoteBook-PC:~/workspace/keypoint/Debug$ ./keypoint < 创建特征检测器、描述符提取器和描述符匹配器 ...

无法创建给定类型的特征检测器或描述符提取器或描述符匹配器。< 读取图像... 读取了 77 个火车图像。

< 从图像中提取关键点... Violación de segmento (`core' generado)

但是,FAST-FREAK-BruteForce 组合对我来说效果很好:

< 创建特征检测器、描述符提取器和描述符匹配器...

< 读取图像... 读取了 77 个火车图像。

< 从图像中提取关键点...

提取时间:374.277 <计算关键点的描述符...查询描述符计数:786;火车描述符总数:154417 描述时间:1489.24 <在匹配器中设置火车描述符集合并将查询描述符匹配到它们...匹配数:786 构建时间:0.024077 ms;匹配时间:14292.6 毫秒

我正在使用 OpenCV 2.4.9,Eclipse 作为 IDE,Linux 作为 SO。谁能帮我?我对使用 FlannBased 匹配器处理大型比较数据库非常感兴趣,因为 BruteForce 匹配器运行良好,但在这种情况下速度非常慢。谢谢!

0 投票
2 回答
33184 浏览

python - OpenCV从blob检测返回关键点坐标和区域,Python

我遵循了一个 blob 检测示例(使用cv2.SimpleBlobDetector)并成功检测到二进制图像中的 blob。但是我不知道如何提取关键点的坐标和面积。以下是 blob 检测的代码:

因此变量keypoints_black包含 blob(s) 的信息。当我打印变量时,它看起来像这样(发现了 2 个 blob):

那么如何获得关键点的质心坐标及其面积,以便我可以将它们作为 osc 消息发送以进行交互。

0 投票
1 回答
741 浏览

java - 使用 flandmark (Javacv) 显示每个关键点的坐标

我目前正在使用来自使用 JavaCV 的 flandmark 中的这个示例。参考:https ://github.com/bytedeco/javacv-examples/blob/master/flandmark-demo/src/main/java/flandmark/Example1.java 。我设法运行了代码,但是有没有一种方法可以显示面部(眼睛、嘴巴、鼻子)中每个关键点的坐标?flandmark 库可以检测到大约 7/8 个关键点。谢谢。

0 投票
0 回答
960 浏览

computer-vision - SIFT 中的准确关键点定位

在他的论文(来自尺度不变关键点的独特图像特征)中,Lowe 描述了一种摆脱“低对比度关键点”的方法。这是使用直到二次项的泰勒展开来完成的:

http://imagizer.imageshack.us/a/img673/4885/4d7v81.gif

通过取导数并将其设置为零来找到极值 (xhat):

http://i.stack.imgur.com/2gwBW.gif

通过给定函数 D, xhat 作为输入,可以确定极值点的值,并通过阈值,保留或丢弃点 xhat:

http://i.stack.imgur.com/FzyDc.gif

从 D(xhat) 方程开始:在我的理解中,逆矩阵取自 Hessian 矩阵(xhat 方程的第一部分),在这种情况下,它是一个 2x2 矩阵 - 第二部分是一阶导数,相对于到 x 和 y 坐标并且是 2x1 矩阵:问题是,当迭代所有潜在的关键点并取逆时,其中一些是奇异的!

D(X):被调查的值将在 D(0,0) 中有 origo,我假设 D 是一个 3x3 矩阵。当 D 添加到其他项时,如何理解-根据我的计算,当添加除 D 之外的所有项时,会出现一个值-如何将这个值添加到 D(这是一个 3x3矩阵)?

这些方程可以在 SIFT 论文第 11 页中找到。

0 投票
2 回答
282 浏览

ios - OpenCV iOS:将关键点和描述符存储在文件或任何其他文件中

任何人都可以帮助我存储从 iOS 中的 OpenCV 获得的关键点和描述符。我尝试了 NSArray, NSSet, NSDictionary, NSUserdefault ,但没有成功。其次是否可以存储为文件?

0 投票
1 回答
64 浏览

java - OpenCV中Dense算法的修改

我在 OpenCV 中使用密集算法实现。版本 2.4.x

我想知道是否有修改特征检测的选项,以便不是每个像素都被查看,但可能每 5 个。这样做我可以减少数据并加快流程。更好的是在图片上放置一个只有中间像素相关的网格。但我找不到办法。

到目前为止,这是我的代码:

文档

有什么想法吗?谢谢

0 投票
1 回答
1325 浏览

c++ - 关键点大小和八度之间的OpenCV连接

我正在使用OpenCV 关键点,我有一个关于关键点大小和八度的问题。

我知道 keyPoint 有一个坐标 (x,y) 和大小,可以简单地描述为一个具有 (x,y) 中心和大小半径的圆。

而且我知道有一些八度音阶(在此期间图像被下采样2),正在检测关键点。

我对此有两个问题。

  1. 检测到关键点大小八度或子级别之间是否存在某种关系?
  2. 图像可以具有的最大八度音阶数是多少?在每个八度音阶上,图像都被 2 下采样,这是否意味着答案是 Log(2,image_size)?那么sublevel呢?