#include <iostream>
#include <fstream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/stitching/stitcher.hpp"
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
Mat img01 = imread("01.png");
Mat img02 = imread("02.png");
Mat img03 = imread("03.png");
vector<Mat> imgs;
imgs.push_back(img01);
imgs.push_back(img02);
imgs.push_back(img03);
Mat pano;
Stitcher stitcher = Stitcher::createDefault(false);
Stitcher::Status status = stitcher.stitch(imgs, pano);
if (status != Stitcher::OK)
{
cout << "Can't stitch images, error code = " << int(status) << endl;
return -1;
}
imshow("01",img01);
imshow("02",img02);
imshow("03",img03);
imshow("Stitch",pano);
waitKey(0);
imwrite("result.jpg", pano);
return 0;
}
使用opencv自带的类Stitcher,来实现图像拼接。
原图如下:
拼接效果如下图