问题标签 [surf]
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.
matlab - 在 Matlab 中使用 Surf 和 Ransac 的基金矩阵
我正在尝试使用 Ransac 实现 SURF,以在 Matlab 中进行基本(F)矩阵估计。然后我将极点计算为 F 矩阵的零空间。我使用了来自File Exchange的OpenSURF 和来自Peter's Kovesi page 的 Ransac。然而,当两幅图像相似时,极点不会像它们应该的那样变得不稳定。有人可以为我提供这两个工作的 Matlab 示例吗?
c++ - 是否有可能获得两个图像之间的旋转和缩放,每个图像只有一个 Surf Descriptor?
我正在使用 Surf 进行地标识别。这是我想的过程:
1) 为每个地标预先保存一个 Surf Descriptor
2)用户拍摄地标(例如建筑物)的照片
3) 为这张图片(照片)计算一个 Surf Descriptor
4)将该描述符与存储的每个地标描述符进行比较,并选择 11 个最近的特征点之间具有最低 DMatch.distance 的描述符作为识别的地标
5)我想计算获得的图像与存储的地标图像之间的旋转和比例。
我的理解是,我只能通过关键点获得这种旋转和比例,因为特征描述符只是关键点的唯一缩减表示。因此,我必须为每个地标保存关键点和特征描述符。是对的吗?
这就是我现在正在做的事情:
c++ - 如何将模板与 SURF 的原始图像匹配?
最近,我从事机器人项目;我的机器人可以通过颜色检测物体,但我发现对于不同的物体来说不够好。因此,我希望机器人能够实时浏览图像以找到将使用其模板定义的目标对象。
不幸的是,我不知道如何将模板的关键点与其在图像中的图像相匹配。
c++ - 快速 C/C++/MATLAB SURF 特征库
SURF 最快的 C/C++ 实现是什么?OpenCV 是不是更好,还是有更快的独立实现?Matlab Mex 包装器是一个加号。
arrays - 使用 MATLAB 从 txt 文件中的表格数据设置数组
所以基本上,我在一个文本文件中有数据,如下所示:
前 3 个标记将用作 (x, y, z) 坐标,而第四个数字将用于创建颜色以使用 surf(x,y,x,c) 函数。我也希望能够将其他值存储在行中。
image - opencv 图像搜索
我的目标是使用图像作为查询来搜索图像库。我想使用 SURF 和定制的 NN 技术来匹配相关图像并显示该图像的前十个结果。
一旦我得到用于比较两个图像的 SURF NN 匹配代码,我应该如何修改该代码以搜索图像库并找出前十个最接近的图像匹配?
谢谢
android - 为什么基于 flann 的描述符匹配器每次都匹配不同的关键点?
正常吗?当我尝试暴力匹配器时,结果每次都是一致的,但 flann 不是。少量的关键点会匹配到不同的地方。我正在使用 Android 包装器编写代码,关键点检测器和描述符是 SURF,如下所示:
c++ - openCV SurfFeatureDetector 是否在内部不必要地提取描述符?
我只是想知道,如果使用 SurfFeatureDetector 来检测关键点并使用 SurfDescriptorExtractor 来提取 SURF 描述符(参见下面的代码,如此处所述)不会提取描述符两次。
openCV 文档说,这两个类是 SURF() 类的包装器。是重载的SURF::operator()
,一个版本只采用一个关键点向量,另一个版本另外采用一个向量作为描述符。是什么让我着迷……然后都调用了该cvExtractSURF()
函数,该函数似乎提取了描述符,无论如何……(我没有深入研究 C 代码,因为我觉得很难理解,所以也许我错了) 但这意味着SurfFeatureDetector
将提取描述符而不返回它们。SurfDescriptorExtractor
在下一步中使用它只是第二次,这对我来说似乎非常低效。但我说得对吗?
c# - 如何将 SURF 兴趣点与图像数据库匹配
我在 C# (OpenSurf) 中使用 SURF 算法从图像中获取兴趣点列表。这些兴趣点中的每一个都包含一个描述符向量、一个 x 坐标 (int)、一个 y 坐标 (int)、比例 (float) 和方向 (float)。
现在,我想将一张图像的兴趣点与数据库中的图像列表进行比较,该数据库也有兴趣点列表,以找到最相似的图像。即:[Image(IP)] COMPARETO [List of Images(IP)]。=> 最佳匹配。逐个比较图像会产生不令人满意的结果。
在搜索 stackoverflow 或其他网站时,我发现的最佳解决方案是建立一个 FLANN 索引,同时跟踪兴趣点的来源。但在实施之前,我有一些令我困惑的问题:
1)当基于他们的SURF兴趣点匹配图像时,我发现一种算法通过比较它们的距离(x1,y1->x2,y2)并找到总距离最小的图像来进行匹配。比较兴趣点时是否从未使用过描述符或方向?
2)如果使用了描述符,我该如何比较它们?我不知道如何使用索引树比较 64 点(1 张图像)的 X 向量和 64 点(多张图像)的 Y 向量。
我真的很感激一些帮助。我搜索过的所有地方或我找到的API,只支持将一张图片与另一张图片匹配,但不支持将一张图片与图片列表有效匹配。
c# - 将一个图像中的 SURF 描述符与其他图像中的描述符列表进行比较
我想将一张图像 (A) 中的 SURF 描述符与其他几张图像 (B,C,D,..) 中的描述符进行比较,以找到与 A 最相似的图像。描述符有 64 个维度。
使用 C# 和 Emgu,通过将 A 的描述符与 B 的描述符进行比较来完成匹配,然后是 C 的描述符,然后是 D 的描述符,依此类推。当图像数量超过 10 时,这非常慢,因为必须搜索许多不相关的描述符。
为了加快这个过程,正确的方法(根据文章)似乎是为 (B,C,D,..) 中的描述符构建一个 kd-tree 以快速匹配找到 A 中的描述符。 kd -tree 根据级别在维度上进行拆分。第一次拆分由第一维决定,第二次拆分由第二维等决定。但是,在描述符(64)的维数很高时,使用 KD-tree 的好处变得更小。
所以我的问题是:使用 KD-tree/其他方法将 SURF 描述符从一个图像 (A) 匹配到多个图像 (B、C、D..),您有什么经验或知识。什么效果好,什么效果不好,你做过这样的事情吗?
FLANN 在这里是一个选项,因为它被 OpenCV 使用,但我找不到 C# 的版本。大约最近的 Neightboor 也是加速 kd-tree 的一个选项,但是这对匹配图像有效吗?
最好的问候莫腾