3

我对 OpenCV 2.4.3 中的 FREAK 函数有疑问。在 FREAK 的定义中,它说:

FREAK( bool orientationNormalized = true,
       bool scaleNormalized = true,
       float patternScale = 22.0f,
       int nOctaves = 4,
       const vector<int>& selectedPairs = vector<int>());

“patternScale”到底是什么意思?我在 FREAK 论文中找不到任何关于“规模”的信息。FREAK 中高斯的核大小是如何确定的?我问这个是因为 BruteForce Matcher 的匹配对取决于参数“patternScale”。

如果我将其保留为默认值,则匹配器会丢失一些关键点并且它们不匹配。但是,如果我将其更改为 1.0,匹配器会匹配每个点。有没有人知道为什么?

4

2 回答 2

3

因此,这里有一些关于 FREAK 构造函数的代码以及它如何使用 OpenCV 自己的答案站点上的 patternScale 参数的一些见解:

http://answers.opencv.org/question/5360/freaks-patternscale-parameter-tuning/

结合这篇关于“吃”关键点的帖子(类似于你正在经历的,似乎)

这似乎表明 patternScale 用于“放大”原始模式的查找关键点。当它们超出图像本身的大小时,它们就会从计算中删除。

于 2013-03-05T23:53:39.460 回答
2

“patternScale”到底是什么意思?

在找到的关键点周围,将构建一个模式来执行测试。如果您查看论文,您会看到这种受人类启发的模式。patternscale 定义了这个模式有多大。

FREAK中的高斯核大小不是确定的吗?

是的。我会这么认为。

另外,您可以查看OpenCV 的源代码。

于 2013-03-08T10:36:38.173 回答