问题标签 [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.
c++ - opencv c++比较不同图像中的关键点位置
通过 比较 2 张图像时feature extraction
,您如何比较keypoint
距离以忽略那些明显不正确的距离?
我发现在比较相似的图像时,大多数时候它可以相当准确,但其他时候它可以抛出完全独立的匹配。
因此,我正在寻找一种方法来查看keypoints
两张图像中的 2 组图像,并确定匹配的图像是否keypoints
相对位于两者的相同位置。因为它知道keypoints
图像 1 上的 1、2 和 3 相距很远,所以在图像 2 上匹配的相应关键点应该又彼此相距相当相似的距离。
我过去曾使用过RANSAC
和minimum distance
检查过,但只是起到了一些作用,它们似乎不像我所追求的那样彻底。
(使用ORB
和BruteForce
)
编辑
将“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
.
--
那有意义吗?
android - OpenCV+Android 关键点检测崩溃
我已经对这个问题进行了大量研究并尝试了所有这些方法,但它们都不起作用,所以是时候讨论一个新主题了。我正在制作一个项目,用户将从设备中选择一张图片,程序将返回相同的图片,并在其上绘制关键点。我之前用openCV制作了另一个程序,现在以完全相同的方式在android上使用它,只是改变了显示它的方式,而不是一个窗口,一个imageView。这是 imageView 的代码:
这应该是捕获关键点并从 imageView 输出带有关键点的选定图片的部分:
并且程序在 LogCat 中因以下行而崩溃:
我提前非常感谢你们。
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 匹配器运行良好,但在这种情况下速度非常慢。谢谢!
python - OpenCV从blob检测返回关键点坐标和区域,Python
我遵循了一个 blob 检测示例(使用cv2.SimpleBlobDetector
)并成功检测到二进制图像中的 blob。但是我不知道如何提取关键点的坐标和面积。以下是 blob 检测的代码:
因此变量keypoints_black
包含 blob(s) 的信息。当我打印变量时,它看起来像这样(发现了 2 个 blob):
那么如何获得关键点的质心坐标及其面积,以便我可以将它们作为 osc 消息发送以进行交互。
java - 使用 flandmark (Javacv) 显示每个关键点的坐标
我目前正在使用来自使用 JavaCV 的 flandmark 中的这个示例。参考:https ://github.com/bytedeco/javacv-examples/blob/master/flandmark-demo/src/main/java/flandmark/Example1.java 。我设法运行了代码,但是有没有一种方法可以显示面部(眼睛、嘴巴、鼻子)中每个关键点的坐标?flandmark 库可以检测到大约 7/8 个关键点。谢谢。
computer-vision - SIFT 中的准确关键点定位
在他的论文(来自尺度不变关键点的独特图像特征)中,Lowe 描述了一种摆脱“低对比度关键点”的方法。这是使用直到二次项的泰勒展开来完成的:
通过取导数并将其设置为零来找到极值 (xhat):
通过给定函数 D, xhat 作为输入,可以确定极值点的值,并通过阈值,保留或丢弃点 xhat:
从 D(xhat) 方程开始:在我的理解中,逆矩阵取自 Hessian 矩阵(xhat 方程的第一部分),在这种情况下,它是一个 2x2 矩阵 - 第二部分是一阶导数,相对于到 x 和 y 坐标并且是 2x1 矩阵:问题是,当迭代所有潜在的关键点并取逆时,其中一些是奇异的!
D(X):被调查的值将在 D(0,0) 中有 origo,我假设 D 是一个 3x3 矩阵。当 D 添加到其他项时,如何理解-根据我的计算,当添加除 D 之外的所有项时,会出现一个值-如何将这个值添加到 D(这是一个 3x3矩阵)?
这些方程可以在 SIFT 论文第 11 页中找到。
ios - OpenCV iOS:将关键点和描述符存储在文件或任何其他文件中
任何人都可以帮助我存储从 iOS 中的 OpenCV 获得的关键点和描述符。我尝试了 NSArray, NSSet, NSDictionary, NSUserdefault ,但没有成功。其次是否可以存储为文件?
java - OpenCV中Dense算法的修改
我在 OpenCV 中使用密集算法实现。版本 2.4.x
我想知道是否有修改特征检测的选项,以便不是每个像素都被查看,但可能每 5 个。这样做我可以减少数据并加快流程。更好的是在图片上放置一个只有中间像素相关的网格。但我找不到办法。
到目前为止,这是我的代码:
有什么想法吗?谢谢
c++ - 关键点大小和八度之间的OpenCV连接
我正在使用OpenCV 关键点,我有一个关于关键点大小和八度的问题。
我知道 keyPoint 有一个坐标 (x,y) 和大小,可以简单地描述为一个具有 (x,y) 中心和大小半径的圆。
而且我知道有一些八度音阶(在此期间图像被下采样2),正在检测关键点。
我对此有两个问题。
- 检测到关键点大小与八度或子级别之间是否存在某种关系?
- 图像可以具有的最大八度音阶数是多少?在每个八度音阶上,图像都被 2 下采样,这是否意味着答案是 Log(2,image_size)?那么sublevel呢?