opencv 之自定義線性濾波

2021-09-28 21:10:33 字數 1775 閱讀 5279

通過api進行濾波處理,濾波演算法基本固定,靈活性不大,得到的效果只能在一定範圍內進行動態調整。例如高斯模糊、均值模糊等利用的濾波演算法

影象處理中最基本的就是卷積處理,利用運算元在不停的移動計算產生我們想要的目的影象。自定義濾波演算法的首要做法就是定義運算元(卷積核)

常見的運算元:

robert運算元

[ 10

0−1]

\left [ \begin 1 & 0 \\ 0 & -1 \end \right]

[10​0−

1​]該運算元左上角畫素點減去右下角畫素點,運算元和為0,得出較暗,突出斜方向細節。

[ 01

−10]

\left [ \begin 0 & 1 \\ -1 & 0 \end \right]

[0−1​1

0​]該運算元右上角畫素點減去左下角畫素點,運算元和為0,得出較暗,突出斜方向細節。

sobel運算元

g x=

[−10

1−20

2−10

1]

gx= \left [ \begin -1 & 0 & 1 \\ -2 & 0 & 2 \\ -1 & 0 & 1 \end \right]

gx=⎣⎡​

−1−2

−1​0

00​1

21​⎦

⎤​該運算元左邊畫素點減去右邊畫素點,運算元和為0,得出較暗,突出水平方向細節,本行所在運算元乘以2倍,邊緣資訊更強。

g y=

[−1−

2−10

0012

1]

gy= \left [ \begin -1 & -2 & -1 \\ 0 & 0 & 0 \\ 1 & 2 & 1 \end \right]

gy=⎣⎡​

−101

​−20

2​−1

01​⎦

⎤​該運算元下邊畫素點減去上邊畫素點,運算元和為0,得出較暗,突出垂直方向細節,本列所在運算元乘以2倍,邊緣資訊更強。

拉普拉斯運算元:

[ 0−

10−1

4−10

−10]

\left [ \begin 0 & -1 & 0 \\ -1 & 4 & -1 \\ 0 & -1 & 0 \end \right]

⎣⎡​0−1

0​−1

4−1​

0−10

​⎦⎤​

該運算元**畫素點的四倍值減去周圍畫素點,運算元和為0,得出較暗,突出邊緣資訊,亮度大的更大,亮度小的更小。

opencv 自定義線性濾波

卷積概念 卷積是影象處理的乙個操作,是依據kernel對影象每個畫素點進行操作,kernel本質上是乙個固定大小的矩陣陣列,其中心為錨點。把kernel放在畫素的陣列之上,求錨點周圍覆蓋的畫素乘積之和 包括錨點 用其來替換錨點下的畫素值。稱之為卷積操作。公式如圖所示。依次對影象進行該操作。常見運算元...

opencv 自定義線性濾波

自定義線性濾波 效果 在學習自定義線性濾波前,需要了解卷積的相關概念 影象中的卷積 最常見的運算元 在邊緣檢測中經常用到,是canny邊緣檢測中重要的一步,通過sobel運算元得到梯度 銳化的掩膜中間是5,拉普拉斯運算元中間是4 拉普拉斯運算元和sobel運算元被用來尋找梯度 尋找影象的邊緣 和掩膜...

open cv常見運算元與自定義線性濾波

卷積和卷積如何工作,這個是知道的,卷積的作用就是模糊影象 提取邊緣,銳化影象。常見的卷積核 運算元 有robert運算元,sobel運算元,拉普拉斯運算元,前兩個運算元是分x方向和y方向的,而拉普拉斯運算元是提取整體影象的邊緣。卷積概念 卷積是影象處理中乙個操作 是kermel 卷積核 在影象的每個...