引導濾波GuidedFilter

qq_43133135發表於2020-12-13

何愷明讀博士提出基於暗通道採用引導濾波去霧演算法獲CVPR2009最佳論文,現在應用面很廣、很廣;能夠克服雙邊濾波的梯度翻轉現象,在濾波後影像的細節上更優,主要美顏演算法差不多都用這個。
先貼虛擬碼:
在這裡插入圖片描述
實現的話可以採用積分圖加速。

線性濾波器

在這裡插入圖片描述
其中I是引導影像,P是輸入的待濾波影像,W是根據引導圖I確定的權重值,Q是濾波後的輸出影像。

1、如果權重W與引導圖無關,那便是一個常量,比如高斯濾波那種,這種我們相對就特別好理解。
2、如果權重與引導圖相關,我們的影像就會受到引導圖影響,比如雙邊濾波中,我們採用和中心畫素差值作為引導,但這嚴格上還算不上引導圖。只能只能時有影響,有引導。

權重確定:
在這裡插入圖片描述
μ k μ_k μk是視窗內畫素點的均值, I i I_i Ii指位於視窗中心的畫素值, I j I_j Ij指視窗內j位置的畫素點的值, σ k 2 σ_k^2 σk2代表視窗內畫素點的方差,ε是一個懲罰值。

( I i − μ k ) ( I j − μ k ) (I_i-μ_k)(I_j-μ_k) (Iiμk)(Ijμk)這一項表明,如果中心畫素值 I i I_i Ii小於均值時, I j I_j Ij如果約大於均值,該項值就是負值,權重1+(-0.幾)就會越小

ε懲罰項的值越大,則分母越大,引導圖對影像的影響就越小,極端情況(比如正無窮), W i j W_{ij} Wij就將退化為 1 / w 2 1/w^2 1/w2,這個 w w w呢,實際上就是視窗邊長,也就是說極端情況下會退化為均值濾波器

但是,實際上我們不用搞得太複雜,我們直接假設該點輸出值和該點引導圖的值是線性關係:
在這裡插入圖片描述
然後我們採用最小二乘去估計出 a k 、 b k a_k、b_k akbk兩個係數即可:
在這裡插入圖片描述
在這裡插入圖片描述
a的分子為I和P的協方差,分母部分為I的方差加上截斷值ε,b的值為P的均值減去a乘以I的均值。可以看出當a值很小時,b約等於視窗內畫素點的均值pk,近似於均值濾波。而當a值很大時,輸出則主要取決於a*▽I的大小,梯度資訊能夠得到保留。

更多詳細參考:【拜小白opencv】33-平滑處理6——引導濾波/導向濾波(Guided Filter)

相關文章