Opencv Python 简明教程

OpenCV Python - Image Addition

读取图像的图像对象本质上是一个二维或三维矩阵,具体取决于图像是否为灰度图像或 RGB 图像。

因此, cv2.add() 函数将两个图像矩阵相加,并返回另一个图像矩阵。

Example

以下代码读取两张图像并执行其二进制加法:

kalam = cv2.imread('kalam.jpg')
einst = cv2.imread('einstein.jpg')
img = cv2.add(kalam, einst)
cv2.imshow('addition', img)

Result

image addition

OpenCV 有一个 addWeighted() 函数来执行两个数组的加权和,而不是线性二进制加法。对应的命令如下:

Cv2.addWeighted(src1, alpha, src2, beta, gamma)

Parameters

addWeighted() 函数的参数如下:

  1. src1 - 第一个输入数组。

  2. alpha - 第一个数组元素的权重。

  3. src2 - 大小和通道数与第一个数组相同的第二个输入数组。

  4. beta - 第二个数组元素的权重。

  5. gamma - 添加到每个和的标量。

此函数根据以下方程式将图像相加:

\mathrm{g(x)=(1-\alpha)f_{0}(x)+\alpha f_{1}(x)}

在上述示例中获得的图像矩阵用于执行加权和。

通过将 a 从 0 更改到 1,可以平滑地从一张图像过渡到另一张图像,以便它们融合在一起。

第一张图像的权重为 0.3,第二张图像的权重为 0.7。将余弦因子设置为 0.

addWeighted() 函数的命令如下:

img = cv2.addWeighted(kalam, 0.3, einst, 0.7, 0)

可以看出,与二进制加法相比,图像加法更加平滑。

gamma factor