OpenCv C++中的缝合

Stitching in OpenCv C++

本文关键字:C++ OpenCv      更新时间:2023-10-16

这里有人能告诉我缝合在OpenCv中是如何工作的吗。我的意思是多少图片应该是一样的缝合?我有三张不同侧面的椅子照片,黑色背景,透视图显示第一张和第二张80%相同,第三张和第三张80%相同。我想缝合它们,然后做一些类似于旋转的三维建模的事情。我的缝合代码在下面给出

int main()

{

    //stiching function
    Mat img1 = imread("back.jpg", CV_LOAD_IMAGE_COLOR);
    Mat img2 = imread("back1.jpg", CV_LOAD_IMAGE_COLOR);
    Mat img3 = imread("back2.jpg", CV_LOAD_IMAGE_COLOR);
    vector<Mat> image;
    Mat stitchedImage;
    Stitcher stitchx = Stitcher::createDefault(true);
    image.push_back(img1);
    image.push_back(img2);
    image.push_back(img3);
    Stitcher::Status stitcherStatus = stitchx.stitch(image, stitchedImage);
    imshow("Stitched", stitchedImage);


    Mat ou;

    rotateImage(stitchedImage, ou, /*-30*/-90,/* 20*/-170.90, 90, 10, 0, -260, 250);
    imshow("o", ou);
    return 0;
}

当调试stitchx.stitch行时,它会显示ERR_NEED_MORE_PICS,在imshow上,它会给出如下异常。StitchedPerspec.exe中0x77002F71处未处理的异常:内存位置0x00DBF210处的Microsoft C++异常:cv::异常。

请任何人帮我渡过难关!我不能在这里上传图片,我不知道为什么。。但如果有人愿意帮我把你的电子邮件id发给我,我可以给你看我的照片。我会非常感激的。。

如果没有上传图片,我们将无法帮助您。但可能在你的图像中没有检测到足够的特征,"缝合"可以使用。。。