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