图像降噪:Scale-Space and Edge Detection Using Anisotropic Diffusion
Scale-Space and Edge Detection Using Anisotropic Diffusion
文章目錄
- Scale-Space and Edge Detection Using Anisotropic Diffusion
- Physical background of diffusion processes
- Linear diffusion filtering
- Nonlinear Diffusion Filtering
Physical background of diffusion processes
當物質濃度、熱量等物理量uuu存在較大差異時,傾向于通過擴散過程來達到平衡,即Fick’s law:
j=?D.?u(1)j=-D.\nabla u\tag{1} j=?D.?u(1)
其中jjj為擴散通量(Diffusion Flux),表示單位時間內通過垂直于擴散方向的單位截面積的擴散物理流量,與該界面處的擴散物理量的梯度成正比,梯度越大,擴散通量越大,如果是單方向擴散過程DDD表示擴散方向(Diffusion Factor),為正,如果是多方向擴散過程DDD表示擴散張量(Diffusion Tensor),為正定對稱陣,?-?號表示擴散方向為梯度的反方向。
參見顧樵.《數學物理方法》中對散度的定義即是單位面積的通量,因此可以將上式表示為:
?tu=?divj=div(D.?u)=Δu(2)\partial _{t}u=-div j=div(D.\nabla u)=\Delta u\tag{2} ?t?u=?divj=div(D.?u)=Δu(2)
其中$\nabla 為梯度算法,為梯度算法,為梯度算法,\Delta為拉普拉斯算子,為拉普拉斯算子,為拉普拉斯算子,div為散度算子,為散度算子,為散度算子,t表示時間,當表示時間,當表示時間,當u表示熱量時,即為熱方程,當表示熱量時,即為熱方程,當表示熱量時,即為熱方程,當u表示圖像灰度值時,如果擴散張量表示圖像灰度值時,如果擴散張量表示圖像灰度值時,如果擴散張量D保持全圖一致,則稱此時的圖像濾波器為線性濾波器,如果擴散張量保持全圖一致,則稱此時的圖像濾波器為線性濾波器,如果擴散張量保持全圖一致,則稱此時的圖像濾波器為線性濾波器,如果擴散張量D$隨圖像某維度信息的變化而變化的話,則稱此時的圖像濾波器為非線性濾波器。
注:拉普拉斯算子即是梯度的散度
Linear diffusion filtering
偏微分方程在圖像濾波過程中最簡單、研究最為深入的就是線性擴散濾波,最值得關注的一點是線性擴散濾波與高斯卷積之間的聯系。首先一個基本的結論是線性擴散濾波,也即是線性各向同性擴散,等價于高斯卷積。
定義f∈R2f\in R^2f∈R2為灰度圖像,絕對可積,最常用來對fff進行平滑的方式即是用高斯濾波核Kσ(x,y)K_{\sigma}(x,y)Kσ?(x,y)與圖像fff進行卷積:
(Kσ?f)(x):=∫R2Kσ(x?y)f(y)dyKσ(x):=12πσ2?exp?(?∣x∣22σ2)(3)\begin{aligned} \left(K_{\sigma} * f\right)(x)&:=\int_{\mathbb{R}^{2}} K_{\sigma}(x-y) f(y) d y\\ K_{\sigma}(x)&:=\frac{1}{2 \pi \sigma^{2}} \cdot \exp \left(-\frac{|x|^{2}}{2 \sigma^{2}}\right) \end{aligned}\tag{3} (Kσ??f)(x)Kσ?(x)?:=∫R2?Kσ?(x?y)f(y)dy:=2πσ21??exp(?2σ2∣x∣2?)?(3)
由于fff是絕對可積的,那么我們轉到頻域中來觀測上面的高斯卷積到底對圖像帶來了什么樣的影響:
(Ff)(ω):=∫R2f(x)exp?(?i?ω,x?)dx(4)(\mathcal{F} f)(\omega):=\int_{\mathbb{R}^{2}} f(x) \exp (-i\langle\omega, x\rangle) d x\tag{4} (Ff)(ω):=∫R2?f(x)exp(?i?ω,x?)dx(4)
由卷積定理:
(F(Kσ?f))(ω)=(FKσ)(ω)?(Ff)(ω)(FKσ)(ω)=exp?(?∣ω∣22/σ2)(5)\begin{aligned} &\left(\mathcal{F}\left(K_{\sigma} * f\right)\right)(\omega)=\left(\mathcal{F} K_{\sigma}\right)(\omega) \cdot(\mathcal{F} f)(\omega)\\ &\left(\mathcal{F} K_{\sigma}\right)(\omega)=\exp \left(-\frac{|\omega|^{2}}{2 / \sigma^{2}}\right) \end{aligned}\tag{5} ?(F(Kσ??f))(ω)=(FKσ?)(ω)?(Ff)(ω)(FKσ?)(ω)=exp(?2/σ2∣ω∣2?)?(5)
即在空域內用高斯濾波核對圖像進行卷積相當于頻域內用高斯函數作為傳遞函數對高頻信號進行衰減。
對于任意有界圖像,定義線性擴散過程:
?tu=Δuu(x,0)=f(x)(6)\begin{aligned} \partial_{t} u &=\Delta u \\ u(x, 0) &=f(x) \end{aligned}\tag{6} ?t?uu(x,0)?=Δu=f(x)?(6)
式的解即為:
u(x,t)={f(x)(t=0)(K2t?f)(x)(t>0)(7)u(x, t)=\left\{\begin{array}{ll} f(x) & (t=0) \\ \left(K_{\sqrt{2 t}} * f\right)(x) & (t>0) \end{array}\right.\tag{7} u(x,t)={f(x)(K2t???f)(x)?(t=0)(t>0)?(7)
注:此方程的求解過程借助傅里葉變換,將線性偏微分方程轉化為常微分方程,具體推導可以參考《Anisotropic Diffusion in Image Processing》
Nonlinear Diffusion Filtering
高斯卷積的計算簡單,但存在模糊圖像邊緣、紋理等細節信息的缺點,為了更好的保留圖像的結構信息,Perona-Malik提出了一種各向異性擴散,降低跨邊緣位置的擴散率,將擴散過程定義為:
?tu=div?(g(∣?u∣)?u)(8)\partial_{t} u=\operatorname{div}\left(g\left(|\nabla u|\right) \nabla u\right)\tag{8} ?t?u=div(g(∣?u∣)?u)(8)
其中g(∣?u∣)g(|\nabla u|)g(∣?u∣)為擴散系數,也稱邊緣停止函數(Edge-Stopping Function),是梯度的單調遞減函數,常用的擴散系數有:
g(∣?u∣)=e??uk2g(∣?u∣)=11+?uk2g(|\nabla u|) = e^{-\frac{\nabla u}{k}^2}\\ g(|\nabla u|) = \frac{1}{1+\frac{\nabla u}{k}^2} g(∣?u∣)=e?k?u?2g(∣?u∣)=1+k?u?21?
離散圖像中拉普拉斯算子可以近似表示為:
Δu=uxx+uyy≈Ul?1,mn?2Ul,mn+Ul+1,mn(Δx)2+Ul,m?1n?2Ul,mn+Ul,m+1n(Δy)2(9)\Delta u=u_{x x}+u_{y y} \approx \frac{U_{l-1, m}^{n}-2 U_{l, m}^{n}+U_{l+1, m}^{n}}{(\Delta x)^{2}}+\frac{U_{l, m-1}^{n}-2 U_{l, m}^{n}+U_{l, m+1}^{n}}{(\Delta y)^{2}}\tag{9} Δu=uxx?+uyy?≈(Δx)2Ul?1,mn??2Ul,mn?+Ul+1,mn??+(Δy)2Ul,m?1n??2Ul,mn?+Ul,m+1n??(9)
圖像當中Δx=Δy=1\Delta x = \Delta y = 1Δx=Δy=1,因此上式化簡為:
Δu≈(Ul?1,mn?Ul,mn)+(Ul+1,mn?Ul,mn)+(Ul,m?1n?Ul,mn)+(Ul,m+1n?Ul,mn)(10)\Delta u \approx\left(U_{l-1, m}^{n}-U_{l, m}^{n}\right)+\left(U_{l+1, m}^{n}-U_{l, m}^{n}\right)+\left(U_{l, m-1}^{n}-U_{l, m}^{n}\right)+\left(U_{l, m+1}^{n}-U_{l, m}^{n}\right)\tag{10} Δu≈(Ul?1,mn??Ul,mn?)+(Ul+1,mn??Ul,mn?)+(Ul,m?1n??Ul,mn?)+(Ul,m+1n??Ul,mn?)(10)
對于連續信號u(x,y,t)u(x,y,t)u(x,y,t)表示圖像點(x,y)(x,y)(x,y)處的像素值隨時間ttt的變化,對于離散信號u(x,y,t)u(x,y,t)u(x,y,t)表示圖像點(x,y)(x,y)(x,y)處的像素值隨迭代次數ttt的變化,用麥克勞林展開對u(x,y,t)u(x,y,t)u(x,y,t)進行線性近似:
u(x,y,t)=u(x,y,t?1)+(?u?t)+Rn(t)(11)u(x,y,t) = u(x,y,t-1) + (\frac{\partial u}{\partial t})+R_{n}(t)\tag{11} u(x,y,t)=u(x,y,t?1)+(?t?u?)+Rn?(t)(11)
將式(10)代入式(11)即有:
Ul,mn+1=Ul,mn+λ(g(∣Ul?1,mn?Ul,mn∣)(Ul?1,mn?Ul,mn)+g(∣Ul+1,mn?Ul,mn∣)(Ul+1,mn?Ul,mn)+g(∣Ul,m?1n?Ul,mn∣)(Ul,m?1n?Ul,mn)+g(∣Ul,m+1n?Ul,mn∣)(Ul,m+1n?Ul,mn)(12)\begin{aligned} U_{l, m}^{n+1}=U_{l, m}^{n}+\lambda &\left(g\left(\left|U_{l-1, m}^{n}-U_{l, m}^{n}\right|\right)\left(U_{l-1, m}^{n}-U_{l, m}^{n}\right)\right.\\ &+g\left(\left|U_{l+1, m}^{n}-U_{l, m}^{n}\right|\right)\left(U_{l+1, m}^{n}-U_{l, m}^{n}\right) \\ &+g\left(\left|U_{l, m-1}^{n}-U_{l, m}^{n}\right|\right)\left(U_{l, m-1}^{n}-U_{l, m}^{n}\right) \\ &+g\left(\left|U_{l, m+1}^{n}-U_{l, m}^{n}\right|\right)\left(U_{l, m+1}^{n}-U_{l, m}^{n}\right) \end{aligned}\tag{12} Ul,mn+1?=Ul,mn?+λ?(g(∣∣?Ul?1,mn??Ul,mn?∣∣?)(Ul?1,mn??Ul,mn?)+g(∣∣?Ul+1,mn??Ul,mn?∣∣?)(Ul+1,mn??Ul,mn?)+g(∣∣?Ul,m?1n??Ul,mn?∣∣?)(Ul,m?1n??Ul,mn?)+g(∣∣?Ul,m+1n??Ul,mn?∣∣?)(Ul,m+1n??Ul,mn?)?(12)
其中λ\lambdaλ為平滑速率,取值越大圖像越平滑,一般取0<λ<1/40<\lambda<1/40<λ<1/4,與最終濾波結果相關的參數有λ、σ、iteration\lambda、\sigma、iterationλ、σ、iteration,σ\sigmaσ越大、iterationiterationiteration越大圖像越平滑
總結
以上是生活随笔為你收集整理的图像降噪:Scale-Space and Edge Detection Using Anisotropic Diffusion的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 淘宝商品微信返利助手开发-(七)返
- 下一篇: xenu工具介绍