Найти хороший код соответствия ключевых точек

Я нашел этот код внутри LATCH_match.cpp в xfeature2D папка:

BFMatcher matcher(NORM_HAMMING);
vector< vector<DMatch> > nn_matches;
matcher.knnMatch(desc1, desc2, nn_matches, 2);
vector<KeyPoint> matched1, matched2, inliers1, inliers2;
vector<DMatch> good_matches;
for (unsigned i = 0; i < matched1.size(); i++) {
    Mat col = Mat::ones(3, 1, CV_64F);
    col.at<double>(0) = matched1[i].pt.x;
    col.at<double>(1) = matched1[i].pt.y;

    col = homography * col;
    col /= col.at<double>(2);
    double dist = sqrt(pow(col.at<double>(0) - matched2[i].pt.x, 2) +
        pow(col.at<double>(1) - matched2[i].pt.y, 2));

    if (dist < inlier_threshold) {
        int new_i = static_cast<int>(inliers1.size());
        inliers1.push_back(matched1[i]);
        inliers2.push_back(matched2[i]);
        good_matches.push_back(DMatch(new_i, new_i, 0));
    }
}

Mat res;
drawMatches(img1, inliers1, img2, inliers2, good_matches, res);
imwrite("latch_res.png", res);

Я вижу, что это своего рода тест отношения, но я не понимаю, в чем смысл inliers а также homography

0 ответов

Другие вопросы по тегам