detectAndCompute(cv::Mat image,cv::noArray(), cv::KeyPoints kps, cv::Mat desc)
cv::Ptr matcher = cv::DescriptorMatcher::create("BruteForce-Hamming");
matches.clear();
matcher->knnMatch(desclr.front(), desclr.back(), matches, 2);
knnMatch(cv::Mat, cv::Mat, std::vector
该函数是为查询集合中的每个描述子在训练集合中找到最好的k个匹配,k nearest neighbor match:
第一个参数是查询集合
第二个参数是训练集合
第三个参数是保存匹配点之间距离的一个类
第四个参数是返回k最近邻个数
这种方法找到的描述子一般还需要查看第一个最近邻和第二个最近邻的距离比例,如果相差很大则认为是好的匹配。
knnMatch是找到前k个最好的匹配,而match仅找到最好的那个匹配