OpenCV学习之图像混合

线性混合操作

  • 功能说明:addWeighted()函数是将两张相同大小,相同类型的图片融合的函数。他可以实现图片的特效
  • 相关API(addWeighted)

参数1: 输入图像Mat - src1
参数2: 输入图像src1的alpha值
参数3: 输入图像Mat - src2
参数4: 输入图像src2的alpha值
参数5: gamma值
参数6:输出混合图像
注意:两张图像的大小和类型必须一致才可以

代码演示

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

using namespace std;
using namespace cv;

int main(int argc,char* argv)
{
	Mat src1,src2,dst;
       src1 = imread("C:/Users/26444/Desktop/testopencvinstall/OIP.jpg");
       src2 = imread("C:/Users/26444/Desktop/testopencvinstall/OIP2.jpg");
       if(!src1.data)
       {
       		cout << "could not load image OIP....."<< endll;
       		return -1;
       }
       if(!src2.data)
       {
       		cout << "could not load image OIP2......"<< endl;
       		return -1;
       }
       double alpha = 0.5;
       //判断2张图像的分辨率是否一样,否则会报错
       if(src1.rows == src2.rows && src1.cols == src2.cols && src1.type() == src2.type())
       {
       			//addWeighted()函数是将两张相同大小,相同类型的图片融合的函数。他可以实现图片的特效
		//参数1: src1,第一个原数组
		//参数2: alpha,第一个数组元素权重
		//参数3: src2,第二个原数组
		//参数4: 1.0 - alpha,第二个数组元素权重
		//0.0 gamma值 图1与图2作后添加的数值。不要太大,不然图片一片白。总和等于255以上就是一片白了
		//参数6: dst,输出图片
		addWeigthed(src1,alpha,src2,(1 - alpha),0.0,dst);
		//multiply(src1,src2,dst,1.0);
		imshow("OIP",src1);
		imshow("OIP2",src2);
		namedWindow("blend demo",WINDOW_AUTOSIZE);
		imshow("blend demo",dst);
       }
       else
       {
       		printf("could not blend image,the size of images is not same....\n");
       		return -1
       }
       waitKey(0);
       return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值