原理分析:
雙邊濾波與高斯濾波器相比,對于圖像的邊緣資訊能過更好的儲存。其原理為一個與空間距離相關的高斯函數與一個灰階距離相關的高斯函數相乘。
空間距離:指的是目前點與中心點的歐式距離。空間域高斯函數其數學形式為:
其中(xi,yi)為目前點位置,(xc,yc)為中心點的位置,sigma為空間域标準差。
灰階距離:指的是目前點灰階與中心點灰階的差的絕對值。值域高斯函數其數學形式為:
其中gray(xi,yi)為目前點灰階值,gray(xc,yc)為中心點灰階值,sigma為值域标準差。
對于高斯濾波,僅用空間距離的權值系數核與圖像卷積後,确定中心點的灰階值。即認為離中心點越近的點,其權重系數越大。
雙邊濾波中加入了對灰階資訊的權重,即在鄰域内,灰階值越接近中心點灰階值的點的權重更大,灰階值相差大的點權重越小。此權重大小,則由值域高斯函數确定。
兩者權重系數相乘,得到最終的卷積模闆。由于雙邊濾波需要每個中心點鄰域的灰階資訊來确定其系數,是以其速度與比一般的濾波慢很多,而且計算量增長速度為核大小的平方。
參數選擇:
空間域sigma選取:其中核大小通常為sigma的6*sigma + 1。因為離中心點3*sigma大小之外的系數與中點的系數隻比非常小,可以認為此之外的點與中心點沒有任何聯系,及權重系數為0.OpenCV中預設的計算公式也是如此,OpenCV參考文檔内容如下:“對應高斯參數的 Gaussian sigma (标準差). 如果為零,則标準差由下面的核尺寸計算: sigma = (n/2 - 1)*0.3 + 0.8, 其中 n=param1 對應水準核,n=param2對應垂直核.”
值域sigma選取:另灰階差△g = abs(gray(xi,yi)- gray(xc,yc)),忽略常數的影響,是以其函數可以簡化為:
由
的圖像可知:
已知 0≤△g≤255;
1)假設sigma = 255,當△g = 255時,系數為exp(-1) = 0.3679,當△g = 0時,系數為exp(-0)= 1.灰階最大點的系數與相差最小的灰階值系數之比為 0.3679.
2)假設sigma = 122.5,當△g = 255時,系數為exp(-4) = 0.0183,當△g = 0時,系數為exp(-0)= 1.灰階差最大點的系數與相差最小的灰階值系數之比為 0.0183.
結論:因為
導數為
,其增長速度為指數增長。
當simga較大時,灰階差最大值與最小值的系數在很小的一個範圍之内,其比值較大。及灰階差較大的點,對于中心點也會有相應的較大的權值,此與雙邊濾波的保留邊緣的初衷相違背。
當sigma較小時,灰階差最大值與最小值的系數在較大的一個範圍之内,其比值很小,及灰階差較大的點,對應中心點僅有很小的權重。
綜上分析可知:
Sigma越大,邊緣越模糊,極限情況為simga無窮大,值域系數近似相等(忽略常數時,将近為exp(0)= 1),與高斯模闆(空間域模闆)相乘後可認為等效于高斯濾波。
Sigma越小,邊緣越清晰,極限情況為simga無限接近0,值域系數近似相等(接近exp(-∞) = 0),與高斯模闆(空間域模闆)相乘後,可近似為系數皆相等,等效于源圖像。
關于Bilateral Filter的相關解釋可參見:http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html