OpenCV - 简单图像融合

在OpenCV中,将两个图片矩阵进行融合变成一个图片用到的是cvAddWeighted函数。在cvAddWeighted函数中,有两个源图象image1 和 image2。两个图象可以是任何象素类型,只要它们的类型相同。它们可以是单通道或是三通道,只要它们相符。但它们的ROI必须有相同的大小,否则会编译出错!

#include
#include
using namespace cv;

int main()
{
	Mat image = imread("C:\\Desktop\\1.jpg",199);
	Mat logo = imread("C:\\Desktop\\4.jpg");

	namedWindow("原画图");
	imshow("原画图", image);
	namedWindow("logo图");
	imshow("logo图", logo);
	
	Mat imageROI;
	imageROI = image(Rect(400, 350, logo.cols, logo.rows));
	addWeighted(imageROI, 0.3, logo, 0.7, 0., imageROI);//将图像加到原图上
	namedWindow("融合效果图");
	imshow("融合效果图", image);
	waitKey();
	return 0;
}

程序运行后,处理后的图像如图:

OpenCV - 简单图像融合_第1张图片

OpenCV - 简单图像融合_第2张图片

OpenCV - 简单图像融合_第3张图片

你可能感兴趣的:(OpenCV学习笔记)