opencv 多波段融合

  


    vector<cv::Point>corners;
	vector<cv::Mat>imgs;

	imgs.push_back(cv::imread("testImg/house.jpg"));
	imgs.push_back(cv::imread("testImg/cat.jpg"));
	imgs.push_back(cv::imread("testImg/dog.jpg"));



 	//待融合图像左上角在pano中的坐标
	corners.push_back(cv::Point(200, 200));
	corners.push_back(cv::Point(100, 100));
	corners.push_back(cv::Point(400, 400));



	cv::detail::MultiBandBlender blender(true,10);

    
	blender.prepare(cv::Rect(0, 0, 1000, 1000));

	vector<cv::Mat>masks(imgs.size());
	for (int i = 0; i < imgs.size(); i++)
	{
		masks[i].create(imgs[i].size(), CV_8U);
		masks[i].setTo(cv::Scalar::all(255));
		blender.feed(imgs[i], masks[i], corners[i]);

	}
	cv::Mat pano;
	cv::Mat panoMask;
	panoMask.create(cv::Size(1000,1000), CV_8U);
	panoMask.setTo(cv::Scalar::all(255));

	blender.blend(pano, panoMask);

	cv::imwrite("pano.jpg",pano);

opencv 多波段融合

opencv 多波段融合