使用OpenCV融合圖像

最近在看《iOS Application Development with OpenCV 3》這本書,其中有講到融合圖像函數的函數,這裏記錄一下。

部分原文摘錄如下

With OpenCV, these blending modes can be implemented as combinations of arithmetic functions such as cv:: addWeighted, cv:: subtract, and cv:: multiply, which are described in the API documentation at http:// docs.opencv.org/ 3.1.0/ d2/ de8/ group__core__array.html.

我們可以訪問OpenCV:Operations on arrays來看這些函數的官方文檔。


這裏只對以下3個函數作簡單說明

  • cv:: addWeighted
  • cv:: subtract
  • cv:: multiply

1.cv:: addWeighted

(1)函數原型

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

(2)函數功能

計算兩個數組的加權和。

(3)計算公式

dst = src1 * alpha + src2 * beta + gamma;

(4)參數解析

參數 含義
src1 第一個輸入數組
alpha 第一個數組的權重
src2 第二個輸入數組,大小和通道數同src1
beta 第二個數組的權重
gamma 加到每一個總和的標量
dst 輸出數組,大小與通道數與輸入數組相同
dtype 輸出數組的深度,可選。
當輸入數組有相同的深度時,其可設置爲1,這相當於src1的深度

2.cv:: subtract

(1)函數原型

void cv::subtract (InputArray src1,
                   InputArray src2,
                   OutputArray dst,
                   InputArray mask = noArray(),
                   int dtype = -1 
)       

(2)函數功能

計算兩個數組或數組和一個標量之間的元素差異。

(3)計算公式

dst = src1 - src2;
//equivalent to subtract(dst, src1, dst);
dst -= src1; 

(4)參數解析

參數 含義
src1 第一個輸入的數組或標量
src2 第一個輸入的數組或標量
dst 輸出數組
mask 操作掩碼,可選。
這是一個8位單通道數組,指定要更改的輸出數組的元素。
dtype 輸出數組深度,可選

3.cv:: multiply

(1)函數原型

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

(2)函數功能

計算兩個數組的元素比例乘積。

(3)參數解析

參數 含義
src1 第一個輸入的數組
src2 第二個輸入數組,大小和類型同src1
dst 輸出數組,大小和類型與src1相同
scale 比例因素,可選
dtype 輸出數組深度,可選
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章