OpenCV Python - 影像加法



當使用 `imread()` 函式讀取影像時,得到的影像物件實際上是一個二維或三維矩陣,這取決於影像是灰度影像還是 RGB 影像。

因此,`cv2.add()` 函式將兩個影像矩陣相加並返回另一個影像矩陣。

示例

下面的程式碼讀取兩張影像並執行它們的二元加法:

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

結果

Image Addition

除了線性二元加法之外,OpenCV 還具有 `addWeighted()` 函式,該函式執行兩個陣列的加權和。該函式的命令如下:

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

引數

`addWeighted()` 函式的引數如下:

  • src1 - 第一個輸入陣列。
  • alpha - 第一個陣列元素的權重。
  • src2 - 第二個輸入陣列,大小和通道數與第一個陣列相同。
  • beta - 第二個陣列元素的權重。
  • gamma - 加到每個和上的標量。

此函式根據以下等式新增影像:

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

上述示例中獲得的影像矩陣用於執行加權和。

透過將 α 從 0 -> 1 變化,可以實現從一張影像到另一張影像的平滑過渡,從而使它們混合在一起。

第一張影像的權重為 0.3,第二張影像的權重為 0.7。gamma 係數取為 0。

`addWeighted()` 函式的命令如下:

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

可以看出,與二元加法相比,影像加法更平滑。

Gamma Factor
廣告
© . All rights reserved.