//案例三:输出->图片叠加->新图片
intmain(intargc,char** argv ){
//注意事项:两张叠加,必需有一张图片>另外一张图片
//类似于给我们图片打水印->常见常见
//第一步:准备两种图片
//imread函数:读取文件->返回一个Mat矩阵(是OpenCV框架最基本数据类型)
Mat mat_image_src = imread("/Users/zhengqiankun/Desktop/image1.png");
Mat mat_image_dst = imread("/Users/zhengqiankun/Desktop/image2.png");
//第二步:创建叠加区域->开辟了一块内存空间
Mat mat_roi = mat_image_src(Rect2i(0, 0, mat_image_dst.cols, mat_image_dst.rows));
//第三步:图片叠加->加水印->合并之后覆盖原来的图片
//参数一:第一个图片数组
//参数二:第一个图片数组->权重
//参数三:第二个图片数组
//参数四:第二个图片数组->权重
//参数五:权重和基础之上标量值
//参数六:输出数组->输出目标
//dst = src1*alpha + src2*beta + gamma;
//伪代码:mat_roi * 0 + mat_image_dst * 1 + 0
addWeighted(mat_roi,0, mat_image_dst,1,0, mat_roi);
//第四步:输出图片
imwrite("/Users/zhengqiankun/Desktop/image1.png", mat_image_src);
return 0;
}
网友评论