我需要实时进行对象识别(图像来自摄像机 USB)
有没有办法告诉
SurfFeatureDetector.detect();
提取更少的关键点?
通过修改阈值,您可以以某种方式控制关键点的数量。无论如何,这不是直接控制关键点的最大数量。
如果您希望它最多停止,则必须进入 .cpp 中的算法(不可调试)并在循环中设置条件。我使用 OpenCV 中的一些算法来实现这一点,以获得计算效率。问题是您需要复制代码并粘贴到您自己的类中才能进行修改,并且它会产生一些链接问题,直到您正确完成所有操作。d
这是SurfFeatureDetector 的构造函数。使用构造函数,您可以使用 3 个基本参数减少关键点的数量:
hessianThreshold
: 增加这个octaves
: 减少这个octavelayers
: 减少这个我不知道 SURF 实现的细节,但是这个 SO 答案指向解释整个算法的文档,因此您可以选择如何更改这些算法。
作为直接研究实现的替代方法,我发现Find-Object对于试验许多特征检测算法设置非常有用。