两张图片合成一张

//案例三:输出->图片叠加->新图片

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;

}

你可能感兴趣的:(两张图片合成一张)