導向濾波學習

2021-10-01 05:53:41 字數 1481 閱讀 5735

今天的數字影象處理課講到了導向濾波,就拿過來**學習了一下,下面兩篇部落格對我幫助很大:

導向濾波演算法分析公式推導很詳細;

導向濾波詳解**是嚴格按照**的演算法流程來的,能理解得更清楚。

我只看了原理部分和保邊濾波器部分,簡單記錄一下。

以影象去噪為例

輸入影象:p

引導影象:i

輸出影象:q

視窗:ωk

去噪模型:雜訊是加性的

前提:在視窗ωk中,輸出影象塊是引導影象塊的乙個線性變換(圖中3是2經過一定的縱向拉伸和縱向平移得到的,每個視窗的ak和bk都不一樣)。

優化:最小化雜訊,即p與q之間的均方誤差,損失函式中加了一項,對ak進行懲罰。

優化結果(可以參考導向濾波演算法分析):

式中,μk和σk2是i在視窗ωk內的均值和方差,而

是p在視窗ωk內的均值。

取乙個視窗進行一次導向濾波,會得到和這個視窗一樣大小的乙個輸出影象塊。不同的視窗有重疊時,輸出影象塊也有重疊,因此考慮對乙個畫素的值進行平均,作為最終輸出的導向濾波的值.平均過程如下:

進一步可以寫成:

總的演算法流程(可以參考導向濾波詳解的**):

由於模型中q是i的乙個線性變換,因此有:

儘管後來又對同一畫素不同視窗的值進行了平均,這個線性關係不再嚴格成立了,但是我們依然可以認為:

兩幅影象的梯度為線性關係,即說明導引影象中的邊緣,對應於輸出影象也是乙個邊緣。

優化過程可以理解為,3要在滿足是2的乙個線性變換的前提下,去達到和1的均方誤差最小(不考慮懲罰項)。

利用導向濾波對影象進行平滑,設定引導影象為輸入的雜訊影象本身。ak和bk的表示式可以化簡為:

如果ε=0,則ak=1,bk=0,否則,考慮下面兩種情況:

1、「高方差」,即i在視窗內灰度變化很大(有很多邊緣),因此這部分影象塊的方差很大,有:

因此ak近似為1,bk近似為0,q近似為p,輸出影象幾乎不變,邊緣被保留。

2、「平坦」,即i在視窗內近似為乙個常數,影象方差很小,有:

因此ak近似為0,bk近似為μk,q近似為μk,即對影象進行了均值平滑,達到了去噪的效果。

具體什麼程度算"高方差",什麼程度算「平坦」,是由ε的取值來決定的。ε類似於雙邊濾波中的σr2,都是衡量雜訊和邊緣的分界線的。

導向濾波 Guid Filtering

導向濾波是一種保護邊緣edge preserving smoothing 濾波演算法,可以運用於比如美顏,去霧,三維重建等多種場合。定義 guidance imagei,an input imagep,and an output imageq。導向濾波認為在區域性區域內,濾波輸出是導向影象的線性模型...

導向濾波 Guided Filter 簡要介紹

提到導向濾波,首先想到的是 何愷明 他的確是真大神,在影象領域,是中國人的驕傲,深度學習流行的時候,也是提出各種新演算法,比如resnets,而最近兩年,深度學習的發展已經非常緩慢了,更多都是各種組合搭配。回歸主題,今天的豬腳是導向濾波,我準備從三篇文章來對它進行簡要介紹,導向濾波的應用範圍很廣泛,...

導向濾波的原理及實現

一 雙邊濾波 雙邊濾波很有名,使用廣泛,簡單的說就是一種同時考慮了畫素空間差異與強度差異的濾波器,因此具有保持影象邊緣的特性。先看看我們熟悉的高斯濾波器 其中w是權重,i和j是畫素索引,k是歸一化常量。公式中可以看出,權重只和畫素之間的空間距離有關係,無論影象的內容是什麼,都有相同的濾波效果。再來看...