最近在看《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
, andcv:: 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 | 輸出數組深度,可選 |