OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
使用 OpenCV 新增(混合)兩張影像

上一個教程: 影像操作
下一個教程: 改變影像的對比度和亮度!

原始作者Ana Huamán
相容性OpenCV >= 3.0

我們將學習如何混合兩張影像!

目標

在本教程中,您將學習

  • 什麼是線性混合以及它的用途;
  • 如何使用 addWeighted() 新增兩張影像

理論

注意
以下解釋來自 Richard Szeliski 的 Computer Vision: Algorithms and Applications 這本書

從我們之前的教程中,我們已經瞭解了一些畫素運算子。一個有趣的二元(雙輸入)運算子是線性混合運算子

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

透過將 \(\alpha\) 從 \(0 \rightarrow 1\) 變化,這個運算子可以用於在兩個影像或影片之間執行時間上的交叉溶解,就像在幻燈片和電影製作中看到的那樣(很酷,不是嗎?)

原始碼

解釋

由於我們將要執行

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

我們需要兩個源影像( \(f_{0}(x)\) 和 \(f_{1}(x)\))。所以,我們以通常的方式載入它們

我們使用了以下影像: LinuxLogo.jpgWindowsLogo.jpg

警告
由於我們正在新增 src1src2,它們都必須具有相同的大小(寬度和高度)和型別。

現在我們需要生成 g(x) 影像。為此,addWeighted() 函式非常方便

因為 addWeighted() 產生

\[dst = \alpha \cdot src1 + \beta \cdot src2 + \gamma\]

在這種情況下,gamma 是上面程式碼中的引數 \(0.0\)。

建立視窗,顯示影像並等待使用者結束程式。

結果