我正在尝试使用Stitcher类拼接分辨率为3000x4000的2张图像,它只是崩溃了。我尝试使用多个参数,有时它表示内存不足,有时它会立即崩溃。
我上传了我的图片,所以你可以看到我想要缝合的东西。
我正在使用以下代码进行拼接:
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;
}