【问题标题】:Extract less keypoint with opencv用opencv提取更少的关键点
【发布时间】:2012-06-21 09:45:19
【问题描述】:

我需要实时进行对象识别(图像来自摄像机 USB)

有没有办法告诉

SurfFeatureDetector.detect(); 

提取更少的关键点?

【问题讨论】:

    标签: opencv sift surf


    【解决方案1】:

    通过修改阈值,您可以以某种方式控制关键点的数量。无论如何,这不是直接控制关键点的最大数量。

    如果您希望它最多停止,则必须进入 .cpp 中的算法(不可调试)并在循环中设置条件。我使用 OpenCV 中的一些算法来实现这一点,以获得计算效率。问题是您需要复制代码并粘贴到您自己的类中才能进行修改,并且它会产生一些链接问题,直到您正确完成所有操作。d

    【讨论】:

      【解决方案2】:

      这里是the constructor for SurfFeatureDetector。使用构造函数,您可以使用 3 个基本参数来减少关键点的数量:

      • hessianThreshold:增加这个
      • octaves:减少这个
      • octavelayers:减少这个

      我不知道 SURF 实现的细节,但this SO answer 指向解释整个算法的文档,因此您可以选择如何更改这些算法。

      作为直接研究实现的替代方法,我发现Find-Object 对于试验许多特征检测算法设置非常有用。

      【讨论】:

        猜你喜欢
        • 2014-09-02
        • 2014-09-17
        • 1970-01-01
        • 2018-10-25
        • 1970-01-01
        • 2015-12-18
        • 2015-04-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多