opencv —— addWeighted 图像叠加(计算数组加权和)


计算数组加权和:addWeighted

可实现两个大小、类型均相同的数组(一般为 Mat 类型)按照设定权重叠加在一起。

void addWeighted(InputArray src1,double alpha,InputArray src2,double beta,double gamma,OutputArray dst,int dtype =-1);

  • src1,需要加权的第一个数组,通常是一个 Mat。
  • alpha,第一个数组的权重。
  • src2,需要加权的第二个数组,需要和第一个数组拥有相同的尺寸和通道数。
  • beta,第二个数组的权重。
  • gamma,dst[i] = src1[i] * alpha + src2[i] * beta + gamma ; 通常设为 0。
  • dst,输出的数组,需要和输入的两个数组拥有相同的尺寸和通道数。
  • dtype ,输出阵列的可选深度,默认值为 -1。深度为数据存储类型,有 8 位,16 位,32 位等等。

 

代码示例:

#include<opencv.hpp>
using namespace cv; Mat srcImage1, srcImage2, dstImage; double alpha, beat; int alpha_value = 50;//接收控制条数值
void change_alpha(int, void*) { alpha = alpha_value / 100.0;//第一个数组权重
     beat = 1.0 - alpha;//第二个数组权重
     addWeighted(srcImage1, alpha, srcImage2, beat, 0.0, dstImage); imshow("合成图", dstImage); } int main() { srcImage1 = imread("C:/Users/齐明洋/Desktop/3.jpg"); srcImage2 = imread("C:/Users/齐明洋/Desktop/4.jpg"); //创建控制条
     namedWindow("Control"); createTrackbar("Alpha", "Control", &alpha_value, 100, change_alpha); waitKey(0); }

 

结果:

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM