我有一个关于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中高斯函数的核大小是如何确定的?我问这个问题是因为BruteForce Matcher的匹配对依赖于参数"patternScale"。
如果我将其保留为默认值,则匹配器会错过一些关键点并且它们不匹配。但是,如果我将其更改为1.0,则匹配器将匹配每个点。有人知道为什么吗?
下面是对FREAK构造函数周围代码的一些了解,以及它如何使用OpenCV自己的答案网站上的patternScale参数:
http://answers.opencv.org/question/5360/freaks-patternscale-parameter-tuning/结合这篇关于"吃"要点的文章(似乎与你正在经历的相似)
这似乎表明patternScale用于"放大"原始模式的查找关键点。当它们的比例超过图像本身的大小时,它们就会从计算中删除。
在找到的关键点周围将构造一个模式来执行测试。如果你仔细看这篇论文,你会看到这种受人类启发的图案。模式量表定义了这个模式的大小。"patternScale"到底是什么意思?
在FREAK中高斯函数的核大小不是确定的吗?
是的。我想是的。
另外你可以看看OpenCV的源代码