图像混合

线性混合操作

 g(x)=(1α)f0(x)+αf1(x)

其中 α 的取值范围为0~1之间, f0(x) f1(x) 分别表示要混合的两张图像,x表示其中每个点的像素值。

相关的API接口
这里写图片描述
参数1:输入图像Mat类src1
参数2:输入图像src1的加权权重值alpha
参数3:输入图片Mat类src2
参数4:输入图像src1的加权权重值beta
参数5:gamma值
参数6:输出混合图像Mat类dst
公式: dst(I)=saturate(src(I)alpha+src2(I)beta+gamma)
saturate确保像素值在0~255,保证不溢出

warning:两张图像必须大小和类型一致才可以使用

#include <opencv2\opencv.hpp>
#include<iostream>

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
    Mat src1, src2, dst;
    double alpha = 0.5;
    src1 = imread("src1.jpg");
    src2 = imread("src2.jpg");
    if (!src1.data)
    {
        cout << "could not load src1..." << endl;
        return -1;
    }
    if (!src2.data)
    {
        cout << "could not load src2..." << endl;
        return -1;
    }
    if (src1.rows == src2.rows &&src1.cols == src2.cols&&src1.type() == src2.type())
    {
        addWeighted(src1, alpha, src2, (1.0 - alpha), 0.0, dst);
        imshow("src1", src1);
        imshow("src2", src2);
        namedWindow("blend demo", CV_WINDOW_AUTOSIZE);
        imshow("blend demo", dst);
    }
    else
    {
        printf("could not blend images,the size of images is not same.....\n");
        return -1;
    }

    waitKey(0);
    return 0;
}

第一张图片:
这里写图片描述
第二章图片:
这里写图片描述
混合后的图片:
这里写图片描述

CV_EXPORTS_W void add(InputArray src1, InputArray src2, OutputArray dst,
                      InputArray mask = noArray(), int dtype = -1);

add(src1, src2, dst, Mat());

直接相加的结果:
这里写图片描述
直接相加可以看出,很多像素直接饱和,不利于图像的处理。

CV_EXPORTS_W void multiply(InputArray src1, InputArray src2,
                           OutputArray dst, double scale = 1, int dtype = -1);

multiply(src1, src2, dst, 1.0);

直接相乘的结果:
这里写图片描述

!!!!貌似没法看,这里不适合直接相乘0.0||

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值