3

正常吗?当我尝试暴力匹配器时,结果每次都是一致的,但 flann 不是。少量的关键点会匹配到不同的地方。我正在使用 Android 包装器编写代码,关键点检测器和描述符是 SURF,如下所示:

Mat queryDescriptors = new Mat();
Mat trainDescriptors = new Mat();
DescriptorExtractor surfDE = DescriptorExtractor.create(DescriptorExtractor.SURF);
surfDE.compute(queryImage, queryKeyPoints, queryDescriptors);
surfDE.compute(trainImage, trainKeyPoints, trainDescriptors);
DescriptorMatcher dm = DescriptorMatcher.create(DescriptorMatcher.FLANNBASED);
List<DMatch> matches = new ArrayList<DMatch>();
dm.match(queryDescriptors, trainDescriptors, matches);
4

2 回答 2

5

FLANN 代表 Fast Library for Approximate Nearest Neighbors。近似最近邻算法是非确定性的,通常是随机的 KD 树。

于 2011-12-26T06:58:35.580 回答
2

据安德烈说,这就是原因!所以是的,这很正常。要找到更多,就必须剖析算法!

于 2011-11-12T18:04:47.607 回答