opencv对图片的基本操作(mac平台下):读取图片、叠加图片(打水印)、输出图片

  • 需求:将一张小图叠加到大图上
  • 首先需要一张大图image1(300 * 300)和一张小图image2(100 * 100)(水印)
    如有侵权,烦请告知,马上替换,谢谢!
    opencv对图片的基本操作(mac平台下):读取图片、叠加图片(打水印)、输出图片_第1张图片
    image1.jpg
image2.jpg
#include 
#include 
#include 
#include 
#include 

using namespace cv;
using namespace std;


int main( int argc, char** argv ){
    
   
    //=========== 叠加一张图片(打水印) ===========
    
    //image1.jpg  image2.jpg
    //底图
    Mat mat_image_src = imread("/Users/laimin/Downloads/image1.jpg");
    //水印图
    Mat mat_image_dst = imread("/Users/laimin/Downloads/image2.jpg");
    
    //获取底图中需要添加水印的位置
    Mat mat_roi = mat_image_src(Rect2i(0, 0, mat_image_dst.cols, mat_image_dst.rows));
    
    //将 mat_roi 的位置设置为 mat_roi * 0 + mat_image_dst * 1 + 0 的值
//    addWeighted(mat_roi, 0, mat_image_dst, 1, 0, mat_roi);
    addWeighted(mat_roi, 0.5, mat_image_dst, 0.5, 0, mat_roi);
    
    //设置窗口
    namedWindow("叠加图片");
    //显示图片
    imshow("显示图片", mat_image_src);
    //输出图片到本地
    imwrite("/Users/laimin/Downloads/image_result.jpg", mat_image_src);
    //窗口停留
    waitKey();

    
    return 0;
}

  • 输出结果


    文件
opencv对图片的基本操作(mac平台下):读取图片、叠加图片(打水印)、输出图片_第2张图片
image_result.jpg

你可能感兴趣的:(opencv对图片的基本操作(mac平台下):读取图片、叠加图片(打水印)、输出图片)