![]() |
OpenCV 4.12.0
開源計算機視覺
|
上一教程: 使用 inRange 進行閾值操作
下一教程: 為影像新增邊框
| 原始作者 | Ana Huamán |
| 相容性 | OpenCV >= 3.0 |
在本教程中,您將學習如何
從非常廣泛的意義上講,相關性是影像的每個部分與一個運算元(核)之間的操作。
核本質上是一個固定大小的數值係數陣列,以及該陣列中的一個錨點,錨點通常位於中心。
假設您想知道影像中某個特定位置的最終值。相關性的值按以下方式計算:
將上述過程用方程表示,我們得到:
\[H(x,y) = \sum_{i=0}^{M_{i} - 1} \sum_{j=0}^{M_{j}-1} I(x+i - a_{i}, y + j - a_{j})K(i,j)\]
幸運的是,OpenCV 為您提供了 filter2D() 函式,因此您無需編寫所有這些操作的程式碼。
執行歸一化盒式濾波器。例如,對於大小為 \(size = 3\) 的核,核將是:
\[K = \dfrac{1}{3 \cdot 3} \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix}\]
程式將使用大小為 3、5、7、9 和 11 的核執行濾波操作。
本教程的程式碼如下所示。
執行一個無限迴圈,更新核大小並將線性濾波器應用於輸入影像。讓我們更詳細地分析一下。
第一行是將 kernel_size 更新為範圍 \([3,11]\) 內的奇數值。第二行透過將其值設定為一個由 \(1\) 填充的矩陣併除以元素數量進行歸一化來實際構建核。