Opencv图片融合

图片融合seamlessClone,比如,将大雁图片放到已经拍摄好的天空的图片中,同时实现背景融合

   // eric++
    string folder =  "./src/photo/";
    // 目标图片
    string src_path = folder + "bird.jpg";
    // 背景图片
    string dst_path = folder + "sky.jpg";

    Mat src = imread(src_path, IMREAD_COLOR);
    Mat dst = imread(dst_path, IMREAD_COLOR);

    // 建立Mask,即目标图片感兴趣的区域,这里定义鸟的图片
    Mat M = 255 * Mat::ones(src.rows, src.cols, src.depth());

    // 设定目标图片,融合后在背景图片的坐标
    // Point center(dst.cols/2,dst.rows/2);
    Point center(dst.cols/3,dst.rows/3);

    // 不同融合方法,呈现不同的效果
    Mat normal_clone;
    Mat mixed_clone;
    Mat monochrome_transfer;

    seamlessClone(src, dst, M, center, normal_clone, NORMAL_CLONE);
    seamlessClone(src, dst, M, center, mixed_clone, MIXED_CLONE);
    seamlessClone(src, dst, M, center, monochrome_transfer, MONOCHROME_TRANSFER);
    imshow("normal_clone",normal_clone);
    imshow("mixed_clone",mixed_clone);
    imshow("monochrome_transfer",monochrome_transfer);

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果将屏蔽层,大雁的边缘,则效果更好。


猜你喜欢

转载自blog.csdn.net/pyt1234567890/article/details/109723972