三、OpenCV之图像的混合(混合函数Core.addWeighted())
混合函数
f0(x)、f1(x)相当于图片,通过上面的线性函数分别给两个图片的矩阵中的每个元素乘以对应的系数然后相加,即为混合后的图片。
注意:两张图片的大小和类型必须一致才可以。
混合函数Core.addWeighted()
在OpenCV中两张图片的混合是提供Core类中的addWeighted()函数实现的。
参数含义
src1:图片1
alpha:图片1前面的系数
src2:图片2
beta:图片2前面的系数
gamma:常数(用于调节图片的亮度)
dst:混合后的图片
dtype:混合后的图片的数据类型
将下面两张图片混合
代码
public class DemoMat { static{ System.loadLibrary(Core.NATIVE_LIBRARY_NAME); } public static void main(String[] args) { Mat src1=Imgcodecs.imread("aa.jpg");//读入图片1 Mat src2=Imgcodecs.imread("bb.jpg");//读入图片2 Mat dst=new Mat();//混合后的图片 Core.addWeighted(src1,0.2,src2,0.8,0,dst);//传参 //展示图片 HighGui.imshow("标题",dst); HighGui.waitKey(0); } }
执行结果