在OpenCv C ++中拼接

时间:2015-04-04 20:30:47

标签: c++ opencv

有人可以告诉我Stitching如何在OpenCv中运行。我的意思是缝合的图片应该相同多少?我有三张不同侧面的椅子图片,黑色背景,透视图第一张与第二张相同80%,第三张80%与第二张相同。我想缝合它们,然后做一些像旋转的3D建模。我的拼接代码如下所示

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处的未处理异常:Microsoft C ++异常:cv ::内存位置0x00DBF210处的异常。

请任何人帮我解决这个问题! 我无法在此处上传图片我不知道为什么......但是,如果有人愿意帮我发送您的电子邮件ID,那么我可以向您展示我的图片。 我会非常感激..

1 个答案:

答案 0 :(得分:0)

如果没有上传图片,我们无法帮助您。但是可能在你的图像中没有检测到“绣”可以使用的特征......