// Perform a query on the database. This simply runs matchFeatures on // each image in the database, and returns the feature set of the best // matching image. bool performQuery(const FeatureSet &f, const ImageDatabase &db, int &bestIndex, vector<FeatureMatch> &bestMatches, double &bestDistance, int matchType) { vector<FeatureMatch> tempMatches; for (unsigned int i=0; i<db.size(); i++) { if (!matchFeatures(f, db[i].features, tempMatches, matchType)) { return false; } bestIndex = i; bestMatches = tempMatches; } return true; }
// Perform a query on the database. This simply runs matchFeatures on // each image in the database, and returns the feature set of the best // matching image. bool performQuery(const FeatureSet &f, const ImageDatabase &db, int &bestIndex, vector<FeatureMatch> &bestMatches, double &bestScore, int matchType) { // Here's a nice low number. bestScore = -1e100; vector<FeatureMatch> tempMatches; double tempScore; for (unsigned int i=0; i<db.size(); i++) { if (!matchFeatures(f, db[i].features, tempMatches, tempScore, matchType)) { return false; } if (tempScore > bestScore) { bestIndex = i; bestScore = tempScore; bestMatches = tempMatches; } } return true; }