opencv3.1 压缩并拼图

必须有重叠才能拼,压缩越多,拼接越快


#include <opencv2\opencv.hpp>
#include <opencv2\stitching.hpp>
using namespace cv;
using namespace std;

vector<Mat> imgs;
string result_name = "result.jpg";
double fScale = 0.1;
const int LEN = 12;

string str[LEN] = {
	"F://1.jpg",
	"F://2.jpg", 
	"F://3.jpg",
	"F://4.jpg",
	"F://5.jpg",
	"F://6.jpg",
	"F://7.jpg",
	"F://8.jpg",
	"F://9.jpg",
	"F://10.jpg",
	"F://11.jpg",
	"F://12.jpg"

};

void AddPic(string picURL)
{
	Mat pic = imread(picURL);
	Size dsize = Size(pic.cols*fScale, pic.rows*fScale);
	Mat pic2 = Mat(dsize, CV_32S);
	resize(pic, pic2, dsize);
	imgs.push_back(pic2);
}

int main()
{
	for (int i = 0; i < LEN; i++) 
	{
		AddPic(str[i]);
	}

	Mat pano;
	
	Stitcher stitcher = Stitcher::createDefault(true);
	Stitcher::Status status = stitcher.stitch(imgs, pano);

	if (status != Stitcher::OK)
	{
		cout << "Can't stitch images, error code = " << status << endl;
		return -1;
	}

	imwrite(result_name, pano);

	waitKey(0);

}




posted @ 2016-07-27 15:29  00000000O  阅读(230)  评论(0编辑  收藏  举报