椒盐噪声也稱為脈衝雜訊,是图像常见的一种雜訊,為随机出現的白点或者黑点,可能是亮的區域有黑色像素或是在暗的區域有白色像素(或是兩者皆有)。椒盐噪声的成因可能是影像訊號受到突如其來的強烈干擾而產生、模数转换器或位元傳輸錯誤等。例如失效的感應器導致像素值為最小值,飽和的感應器導致像素值為最大值。
常用的去除这种噪声的有效手段為中值滤波器。下面的实例图像分别是原始图像、带有椒盐噪声的图像、经过平均滤波器修复的图像以及经过中值滤波器修复的图像。
原始图像
|
加入椒盐噪声的图像
|
使用平均滤波器重建的图像
|
使用中值滤波器重建的图像
|
一般使用非線性濾波器處理椒盐噪声的方法,以下將簡介三種解決方法。
異常偵測(Anomaly detection)有時稱為異常值偵測(Outlier detection),如其名所隱含的,在給定的資料集合中,它將偵測在已有的規律中表現異常者。現今常用的方法以計算距離為基礎的K-近鄰演算法或是機器學習中的支持向量机等,下圖的例子以平均數為基礎,在3X3的遮罩中,計算每個像素的平均值,與平均值相差絕對值ε的像素值將被平均值取代,其中,遮罩大小和誤差值ε則是和輸入圖片內容相關。
異常值偵測的缺點在於用平均值替代像素值,會造成像素值單一的背景出現異常的雜點(如天空),雖然相較於原本的椒盐噪声不明顯,但仍然可以看出。
中值濾波器(Median filtering) 如其名,將一個像素的值用該像素鄰域中強度值的中間值來取代(計算中間值的過程中,也會將該像素的原始值包含),中值濾波器在處理椒盐噪声上能提供絕佳的雜訊降低效能。中值濾波器所衍伸的問題是計算速率,舉例而言,要計算5個元素
的中值濾波器的計算過程如下:
![{\displaystyle Median(O_{1},O_{2},O_{3},O_{4},O_{5})=max(min(O_{1},O_{2},O_{3}),min(O_{1},O_{2},O_{4}),\cdots )}](https://backend.710302.xyz/https/wikimedia.org/api/rest_v1/media/math/render/svg/03f51d8b15cbe24aa7d39a930b5ea9bb432c0a46)
![{\displaystyle =min(max(O_{1},O_{2},O_{3}),max(O_{1},O_{2},O_{4}),\cdots )}](https://backend.710302.xyz/https/wikimedia.org/api/rest_v1/media/math/render/svg/d9ff5efaa5ae38e37a61f9709bf2b4066f59abab)
Median filter pseudocode
先取最小值再取最大值可以得到中間值,但做最小值的過程中,需要先考慮10個可能的選項(
),由於計算速度的考量,因此促進了Pseudo-median filtering (PMED)的產生。
中值濾波器的缺點為讓邊緣模糊、較不銳利,由於使用中間值替代向素值,在像素值容易有較大變化的地方,如邊界或細節的地方,會被模糊。
為了改進中值濾波器的計算速率,偽中值濾波器(Pseudo-median filtering) 以近似的方法算出中間值,以5個元素的偽中值濾波器為例
![{\displaystyle MAXMIN=max(min(O_{1},O_{2},O_{3}),min(O_{2},O_{3},O_{4}),min(O_{3},O_{4},O_{5})),}](https://backend.710302.xyz/https/wikimedia.org/api/rest_v1/media/math/render/svg/aac0f54d6f616f6aca94effd63d931d7cf95a6a6)
![{\displaystyle MINMAX=min(max(O_{1},O_{2},O_{3}),max(O_{2},O_{3},O_{4}),max(O_{3},O_{4},O_{5})),}](https://backend.710302.xyz/https/wikimedia.org/api/rest_v1/media/math/render/svg/9fb9fc44b8aad00666391aa1bdd52a53b42a4d2c)
![{\displaystyle PMED(O_{1},O_{2},O_{3},O_{4},O_{5})=0.5\times (MAXMIN+MINMAX)\sim Median(O_{1},O_{2},O_{3},O_{4},O_{5})}](https://backend.710302.xyz/https/wikimedia.org/api/rest_v1/media/math/render/svg/d99157458ac5323ecf23810905106a1c7f6503e0)
其中,MAXMIN會低估中間值,而MINMAX會高估中間值,將兩者平均起來以近似中間值。應用在2D的偽中值濾波器可以有許多取法,例如:
PMED Illustration
.........
- Digital Image Processing, 3/E, Rafael C. Gonzalez, and Richard E. Woods
- Non-linear time variant system analysis, Jian-Jiun Ding(2013)