在我的代码中的某个时刻,我调用
myDescriptorMatcher.match(descriptors, result);
Run Code Online (Sandbox Code Playgroud)
现在,如果我想过滤结果匹配,我相信我必须做一些难看的事情,例如:
List<DMatch> matchesList = matches.toList();
double maxDistance = 0;
double minDistance = 1000;
int rowCount = matchesList.size();
for (int i = 0; i < rowCount; i++) {
double dist = matchesList.get(i).distance;
if (dist < minDistance) minDistance = dist;
if (dist > maxDistance) maxDistance = dist;
}
List<DMatch> goodMatchesList = new ArrayList<DMatch>();
double upperBound = 6 * minDistance;
for (int i = 0; i < rowCount; i++) {
if (matchesList.get(i).distance < upperBound) {
goodMatchesList.add(matchesList.get(i));
}
} …Run Code Online (Sandbox Code Playgroud)