以高分辨率拼接图像

时间:2018-04-10 13:27:45

标签: opencv image-stitching

我正在尝试使用Stitcher类拼接分辨率为3000x4000的2张图像,它只是崩溃了。我尝试使用多个参数,有时它表示内存不足,有时它会立即崩溃。

我上传了我的图片,所以你可以看到我想要缝合的东西。

top image

bottom image

我正在使用以下代码进行拼接:

Stitcher stitcher = Stitcher::createDefault(false);
stitcher.stitch(images, result);

我所有分辨率较低的图像(1980x1000)都被正确缝合。

现在我尝试将波形校正设置为false,或者将分辨率参数设置为-1但没有任何帮助。

我也在4GB内存的PC上运行此代码,但我不确定这是不是问题。是否可以使用拼接类将这些图像正确拼接成一个?

编辑:我在Visual Studio(windows 64bit)中使用opencv 2.4.13

#include <opencv2/opencv.hpp>
#include <opencv2/stitching/stitcher.hpp>

int main()
{
    cv::Mat img1 = cv::imread("top.jpg");
    cv::Mat img2 = cv::imread("bottom.jpg");

    std::vector <cv::Mat> imgs;
    imgs.push_back(img1);
    imgs.push_back(img2);

    cv::Mat pano; 

    cv::Stitcher stitcher = cv::Stitcher::createDefault(false); 
    cv::Stitcher::Status status = stitcher.stitch(imgs, pano); 

    cv::imwrite("stitched.jpg", pano); // write the result to the output image

    return 0;
}

0 个答案:

没有答案