四张图拼接
代码实现:
#include <iostream>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <cstring>
using namespace std;
using namespace cv;
int main()
{
Mat combine,combine1,combine2;
Mat a=imread("01.jpg");
Mat b=imread("02.jpg");
Mat c=imread("03.jpg");
Mat d=imread("03.jpg");
hconcat(a,b,combine1);
hconcat(c,d,combine2);
vconcat(combine1,combine2,combine);
namedWindow("Combine",CV_WINDOW_AUTOSIZE);
imshow("Combine",combine);
waitKey(0);
return 0;
}
25张图片拼接
代码实现:
#include <iostream>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include<opencv2/stitching.hpp>
using namespace std;
using namespace cv;
int main()
{
int i = 0,j=0;
Mat combine;
Mat row[5][5], column[5];
Mat com_row[5][5], con_column[5];
row[0][0] = imread("../25/1-1.png");
row[0][1] = imread("../25/1-2.png");
row[0][2] = imread("../25/1-3.png");
row[0][3] = imread("../25/1-4.png");
row[0][4] = imread("../25/1-5.png");
row[1][0] = imread("../25/2-1.png");
row[1][1] = imread("../25/2-2.png");
row[1][2] = imread("../25/2-3.png");
row[1][3] = imread("../25/2-4.png");
row[1][4] = imread("../25/2-5.png");
row[2][0] = imread("../25/3-1.png");
row[2][1] = imread("../25/3-2.png");
row[2][2] = imread("../25/3-3.png");
row[2][3] = imread("../25/3-4.png");
row[2][4] = imread("../25/3-5.png");
row[3][0] = imread("../25/4-1.png");
row[3][1] = imread("../25/4-2.png");
row[3][2] = imread("../25/4-3.png");
row[3][3] = imread("../25/4-4.png");
row[3][4] = imread("../25/4-5.png");
row[4][0] = imread("../25/5-1.png");
row[4][1] = imread("../25/5-2.png");
row[4][2] = imread("../25/5-3.png");
row[4][3] = imread("../25/5-4.png");
row[4][4] = imread("../25/5-5.png");
//水平拼接
com_row[0][0] = row[0][0];
com_row[1][0] = row[1][0];
com_row[2][0] = row[2][0];
com_row[3][0] = row[3][0];
com_row[4][0] = row[4][0];
for (i = 0; i < 5; i = i + 1)
{
for (j = 0; j < 4; j = j + 1)
{
//图像尺寸要保持一致
hconcat(com_row[i][j], row[i][j+1], com_row[i][j+1]);
}
column[i] = com_row[i][4]; //产生的每一行的拼接图片
}
//垂直拼接
con_column[0] = column[0];
for (i = 0; i < 4; i = i + 1)
{
vconcat(con_column[i], column[i + 1], con_column[i + 1]);
}
combine = con_column[4];
namedWindow("Combine", CV_WINDOW_AUTOSIZE);
imshow("Combine", combine);
cv::waitKey(0);
imwrite("Combine.png", combine);
return 0;
}