#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
usingnamespace cv;
usingnamespace std;
intmain( )
{
double alphaValue = 0.2;
double betaValue;
Mat srcImage2, srcImage3, dstImage;
Mat srcImage1=imread("logo.jpg");
Mat ImageROI ;
//两幅图片为同样的类型和尺寸 方可重叠
srcImage2=imread("timo.jpg");
srcImage3=imread("meigui.jpg");
ImageROI =srcImage2(Rect(100,100,srcImage1.cols,srcImage1.rows));//制定区域位置,以点坐标标记起始位置
srcImage1.copyTo(ImageROI,srcImage1);//用srcImage1这个logo image去移动到imageROI位置上并覆盖,前面的M.实在是告诉内存该矩阵的大小和图像内容
//图像混合加权操作
betaValue= ( 1.0 - alphaValue );
addWeighted(srcImage2, alphaValue,srcImage3, betaValue, 0.0, dstImage); // dst = src1[I]*alpha+ src2[I]*beta + gamma;为输出线性混合图像的公式
namedWindow("result",WINDOW_NORMAL);
imshow("result",dstImage );
imwrite("存储图像.jpg",dstImage);
waitKey(0);
return 0;
}