#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格式