findHomography返回的mask参数的值表示什么?

What do the values of the mask parameter returned by findHomography represent?

本文关键字:表示 什么 参数 返回 mask findHomography      更新时间:2023-10-16

我正在使用OpenCV的函数findHomography和RANSAC方法,以便找到与一组关键点链接的两个图像相关的单应性。

主要问题是,我还没能找到任何地方,但什么是掩码矩阵的值,该函数输出。

我知道的唯一信息是0值是离群值,非零值是内值。但内线值是什么意思呢?有人知道吗?

调用findHomography的代码:

cv::Mat H12;
cv::Mat mask;
H12 = cv::findHomography(FvPointsIm1, FvPointsIm2, mask, CV_RANSAC, 5); 
ui->Debug_Label->setText(Mat2QString(mask));

findHomography返回的掩码是一个8位,单通道cv::Mat(或std::vector<uchar>,如果你喜欢),其中01表示离群状态。

EDIT:通过调用.at<double>来访问掩码的每个元素,这会导致令人困惑的输出。您应该使用.at<uchar>,它将正确地解释矩阵值。

我在应用关键点匹配后使用了findHomography方法。

  • 内围层是被计算为真阳性(正确匹配)的匹配关键点;
  • 异常值
  • 是被计算为假阳性(假匹配)的匹配关键点。

然后你可以使用掩码输出从所有匹配中提取正确匹配的子集。

  • 在Python 3.6中有一个例子&OpenCV 3.4.1:

    good_kp = [gray_kp[m.queryIdx].pt for m in good_matches]
    correct_matched_kp = [good_kp[i] for i in range(len(good_kp)) if mask[i]]