opencv图像拼接vconcat函数



#include <opencv2/opencv.hpp>
#include <iostream>
#include <vector>
#include <string>

using namespace cv;
using namespace std;

int main()
{
    string path = "C:\\Users\\Administrator\\Desktop\\图片\\*.jpg";
    vector<String> filenames;
    glob(path, filenames);
    if (filenames.size() == 0)
    {
        cout << "没有找到图片" << endl;
        return 0;
    }
    /*cout << filenames.size() << endl;*/
    Mat result;
    Mat img1 = imread(filenames[0]);
    for (unsigned int i = 1; i < filenames.size(); i++)
    {
        Mat img2 = imread(filenames[i]);
        vconcat(img1, img2, result);
        /*cerr <<i;*/
        result.copyTo(img1);
    }
    imwrite("result.jpg", result);
    waitKey(0);
    /*system("pause");*/
    return 0;
}
当文件夹中有8张图片,就拼接不出结果了,循环也只执行到第6次,7张图片以下和7张图片就可以拼接成功,不知道咋回事(每个图片5M左右)。

水平拼接的话你的row需要相同,你看下是不是后面的几张图片不满足之类的,或者就是你的图片后缀不一样导致你没有找到全部的图片

所有图片都是8192x8192的jpg格式