影像處理與濾波

雙邊濾波器

雙邊濾波器在平滑影像的同時保持邊緣清晰,做法是「對要平均哪些鄰居很挑剔」。單純的高斯模糊只依距離把一個像素與它所有鄰居平均,因此無可避免地會讓明暗區域跨越邊緣相互滲透。雙邊濾波器加上第二個條件:一個鄰居唯有在「空間上接近」且「亮度上與中心像素相似」時才會有強烈貢獻。跨越一道銳利邊緣時,另一側的鄰居其值差異很大,於是被降權到近乎零,邊緣便得以存留。

形式上,像素 p 的輸出是對鄰居 q 的正規化加權平均:output(p) = (1/W) * 對所有 q 求和 G_s(p 到 q 的距離) * G_r(|I(p) - I(q)|) * I(q),其中 W 是權重總和。這裡有兩個高斯:寬度為 sigma_s 的空間核 G_s,控制濾波器伸及多遠;以及寬度為 sigma_r 的值域(強度)核 G_r,控制在拒絕某個鄰居之前能容忍多少亮度差。sigma_r 大時它表現得像普通高斯;sigma_r 小時它強烈保邊。它是非線性的(權重取決於影像內容)且非迭代的。

雙邊濾波器是色調映射(在保留細節的同時平滑 HDR 影像的基底層)、細節增強與去雜訊的基礎。天真地做很慢,半徑為 r 時為 O(N * r^2),因此會使用雙邊網格(bilateral grid)與多面體格(permutohedral lattice)等快速近似。它並非完美:它可能產生梯度反轉瑕疵(邊緣附近的過衝),以及在平滑漸層上出現階梯或卡通效果,使連續斜坡碎裂成一塊塊平台。它屬於一族保邊方法,包括非等向性擴散(anisotropic diffusion)、非局部平均(non-local means,比較的是整個區塊而非單一像素),以及引導濾波器(guided filter,更快且避免梯度反轉)。

美化人像:以中等 sigma_s 與小 sigma_r 的雙邊濾波器,把毛孔(小幅強度變化)平滑成瓷器般,同時讓眼睛、嘴唇與髮絲的高對比邊界保持完美銳利。

陷阱:sigma_r 是以強度單位定義的,因此必須匹配你的資料範圍,為 0-255 影像調好的值在 0-1 浮點影像上行為會完全不同。把 sigma_r 的尺度弄錯,是雙邊濾波器不是毫無作用、就是把所有東西都模糊掉的最常見原因。

又稱
edge-preserving smoothing