OpenCV函数及类理解记录

  1. detectAndCompute
    这是一个特征检测的函数,在ORB下的常用用法
    detectAndCompute(cv::Mat image,cv::noArray(), cv::KeyPoints kps, cv::Mat desc)
    第一个参数image是被检测特征的图像
    第二个参数noArray()不知道啥用
    第三个参数kps就是特征点的坐标值
    第四个参数是特征点的描述子,用Mat矩阵表示,每一行是每个关键点的特征向量。
  2. cv::DescriptorMatcher
    用来进行特征点匹配的一个类,通常有下面的用法
cv::Ptr<cv::DescriptorMatcher> matcher = cv::DescriptorMatcher::create("BruteForce-Hamming");
matches.clear();
matcher->knnMatch(desclr.front(), desclr.back(), matches, 2);

knnMatch(cv::Mat, cv::Mat, std::vector>, int)
该函数是为查询集合中的每个描述子在训练集合中找到最好的k个匹配,k nearest neighbor match:
第一个参数是查询集合
第二个参数是训练集合
第三个参数是保存匹配点之间距离的一个类
第四个参数是返回k最近邻个数
这种方法找到的描述子一般还需要查看第一个最近邻和第二个最近邻的距离比例,如果相差很大则认为是好的匹配。
knnMatch是找到前k个最好的匹配,而match仅找到最好的那个匹配

  1. cv::DMatch
    用于存储匹配点距离的一个类

你可能感兴趣的:(opencv,计算机视觉,人工智能)