【问题标题】:Sift Extraction - opencv筛选提取 - opencv
【发布时间】:2012-07-07 19:58:02
【问题描述】:

我正在尝试开始使用 (C++) OpenCv 进行筛选特征提取。我需要使用 SIFT 提取特征,在原始图像(例如一本书)和场景之间进行匹配,然后计算相机位姿。

到目前为止,我使用 SURF 找到了this algorithm。有谁知道我可以从中开始的基本代码,或者可能是一种将链接中的算法从 SURF 转换为 SIFT 的方法?

提前致谢。

编辑: 好的,我为筛选问题制定了解决方案。现在我正在尝试确定相机姿势。我正在尝试使用:solvePnP,有人可以帮我举个例子吗?

【问题讨论】:

    标签: c++ opencv sift surf feature-extraction


    【解决方案1】:

    查看新 OpenCV 文档网站的 feature2d tutorial section。 有代码显示的教程:

    1. Feature detection 与例如冲浪
    2. Feature Description
    3. Feature Matching

    【讨论】:

    • 谢谢,但此示例适用于 SURF。我需要 SIFT,或者以某种方式将算法从 SURF 转换为 SIFT。
    【解决方案2】:

    如果你已经设法找到图像和场景之间的匹配,那么我建议你应用 cv::findHomography()。它将使用 4 个匹配项作为输入来计算单应矩阵。

    您可以直接从单应矩阵转换为相机位姿。

    【讨论】:

      【解决方案3】:

      为了使用 SIFT 而不是 SURF,我将 SurfFeatureDetector 更改为 SiftFeatureDetectorSurfDescriptorExtractor 更改为 SiftDescriptorExtractor。对于某些图像,我发现组合 SURF 检测器 SIFT 描述符产生相对准确的结果,但您应该根据您的要求尝试其他组合(FAST 检测器 - FREAK 描述符或 ORB 检测器 - BRISK 描述符)。

      请按照本教程解决您问题的单应性部分: Feature Matching and Homography

      另外,也许这会有所帮助:Pose Estimation

      【讨论】:

        猜你喜欢
        • 2016-10-27
        • 1970-01-01
        • 2017-07-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多