如何使用从图像中获得的 SIFT 描述符关键点并在其上运行 RANSAC(estimateGeometricTransform)?

Posted

技术标签:

【中文标题】如何使用从图像中获得的 SIFT 描述符关键点并在其上运行 RANSAC(estimateGeometricTransform)?【英文标题】:How can I use the SIFT descriptor key points I get from an image and run RANSAC (estimateGeometricTransform) on it? 【发布时间】:2017-08-11 17:52:46 【问题描述】:

大家好,我对一般编程和 MatLab 比较陌生。 我有一个任务希望我将不同的 MatLab 检测函数(SURF、BRISK、FAST 等)与 SIFT 描述符进行比较。

我有 MatLab 函数的代码并检查其中的关键点,然后运行类似于 RANSAC 的estimateGeometricTransform 并检查结果。

我遇到的困难是使用 vlfeat 找到一个 SIFT 代码来提取关键点,然后在它们上运行 estimateGeometricTransform。我可以在网上找到的所有现成代码是用于图像马赛克和拼接的 SIFT RANSAC,这不是我需要的。 我需要使用相同的图像,创建某种旋转或缩放差异,并查看关键点如何匹配不同类型的图像。

网上所有的代码似乎都太难处理了。 有人可以指导我到哪里可以找到我正在寻找的东西,或者如果可能的话,我该如何实现它?

【问题讨论】:

SIFT implementation in MATLAB Tutorial的可能重复 我不是在寻找 MATLAB 中的 SIFT 实现,我想帮助我将 vlfeat 与 matlab RANSAC estimateGeometricTransform 一起使用 【参考方案1】:
    从 vl_sift 的 SIFT 中提取关键点 找到图像的坐标点或匹配点。匹配点可以通过 vl_ubcmatch 运行。 使用关键点运行estimateGeometricTransform。

示例: [f1,d1] = vl_sift(I1);

在f1或frame 1中,第一行是x坐标,第二行是y坐标。

【讨论】:

以上是关于如何使用从图像中获得的 SIFT 描述符关键点并在其上运行 RANSAC(estimateGeometricTransform)?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 SIFT 描述符是尺度不变的?

匹配两个图像关键点

使用 OpenCV 从小图像中提取点描述符

使用 SIFT 将图像与数据库匹配

OpenCV+Python特征提取算法与图像描述符之SIFT / SURF / ORB

如何使用 SIFT 算法计算两幅图像的相似程度?