2

我想使用opencv拼接2张图像(我不想使用stitcher类),到目前为止我已经完成了关键点检测、描述、匹配和变形

有输入图像:

左右 _

我的输出

缝合器类输出

这是我找到与 surf 算法匹配后的代码:

for (int j = 0; j < good_matches.size(); j++)
{
    //-- Get the keypoints from the good matches
    obj.push_back(keypoints1[good_matches[j].queryIdx].pt);
    scene.push_back(keypoints2[good_matches[j].trainIdx].pt);
}

H = findHomography(Mat(scene), Mat(obj),match_mask, CV_RANSAC);


cv::Mat result;
warpPerspective(image2, result, H, cv::Size(image2.cols + image1.cols, image2.rows*2), INTER_CUBIC);

Mat final(Size(image2.cols * 2 + image2.cols, image2.rows * 2), CV_8UC3);

Mat roi1(final, Rect(0, 0, image1.cols, image1.rows));
Mat roi2(final, Rect(0, 0, result.cols, result.rows));

result.copyTo(roi2);
image1.copyTo(roi1);

imshow("Result", final);

所以我的问题是,我应该在我的代码中添加什么以使我的输出看起来更像来自stitcher 类的输出

4

0 回答 0