椒盐噪声

维基百科,自由的百科全书
跳转至: 导航搜索

椒盐噪声也稱為脈衝雜訊,是图像中经常见到的一种雜訊,它是一种随机出現的白点或者黑点,可能是亮的區域有黑色像素或是在暗的區域有白色像素(或是兩者皆有)。鹽和胡椒雜訊的成因可能是影像訊號受到突如其來的強烈干擾而產生、類比數位轉換器位元傳輸錯誤等。例如失效的感應器導致像素值為最小值,飽和的感應器導致像素值為最大值。

Image with salt and pepper noise

常用的去除这种噪声的有效手段是使用中值滤波器。下面的实例图像分别是原始图像、带有椒盐噪声的图像、经过平均滤波器修复的图像以及经过中值滤波器修复的图像。

原始图像
加入椒盐噪声的图像
使用平均滤波器重建的图像
使用中值滤波器重建的图像

處理方式[编辑]

一般使用非線性濾波器處理椒盐噪声的方法,以下將簡介三種解決方法。

異常值偵測[编辑]

異常偵測(Anomaly detection)有時稱為異常值偵測(Outlier detection),如其名所隱含的,在給定的資料集合中,它將偵測在已有的規律中表現異常者。現今常用的方法以計算距離為基礎的K-近鄰演算法或是機器學習中的支持向量机等,下圖的例子以平均數為基礎,在3X3的遮罩中,計算每個像素的平均值,與平均值相差絕對值ε的像素值將被平均值取代,其中,遮罩大小和誤差值ε則是和輸入圖片內容相關。

Outlier detection pseudocode
The result of applying outlier detection

Outlier detection的缺點在於用平均值替代像素值,會造成像素值單一的背景出現異常的雜點(如天空),雖然相較於原本的鹽與胡椒雜訊不明顯,但仍然可以看出雜訊。

中值濾波器[编辑]

中值濾波器(Median filtering) 如其名所隱含的,它將一個像素的值用該像素鄰域中強度值的中間值來取代(計算中間值的過程中,也會將該像素的原始值包含),中值濾波器在處理鹽和胡椒雜訊上能提供絕佳的雜訊降低效能。中值濾波器所衍伸的問題是計算速率,舉例而言,要計算5個元素O_1,O_2, O_3, O_4, O_5的中值濾波器的計算過程如下:

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)
= min(max(O_1, O_2, O_3), max(O_1, O_2, O_4), \cdots)
Median filter pseudocode
Median filter result

先取最小值再取最大值可以得到中間值,但做最小值的過程中,需要先考慮10個可能的選項(C_3^5),由於計算速度的考量,因此促進了Pseudo-median filtering (PMED)的產生。 中值濾波器的缺點為讓邊緣模糊、較不銳利,由於使用中間值替代向素值,在像素值容易有較大變化的地方,如邊界或細節的地方,會被模糊。

偽中值濾波器[编辑]

為了改進中值濾波器的計算速率,偽中值濾波器(Pseudo-median filtering) 以近似的方法算出中間值,以5個元素的偽中值濾波器為例,

MAXMIN = max(min(O_1, O_2, O_3), min(O_2, O_3, O_4), min(O_3, O_4, O_5)),
MINMAX = min(max(O_1, O_2, O_3), max(O_2, O_3, O_4), max(O_3, O_4, O_5)),

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)

其中,MAXMIN會低估中間值,而MINMAX會高估中間值,將兩者平均起來以近似中間值。應用在2D的偽中值濾波器可以有許多取法,例如:

PMED Illustration

PMED=0.5 \times(PMED_x + PMED_y)

參考資料[编辑]

  • Digital Image Processing, 3/E, Rafael C. Gonzalez, and Richard E. Woods
  • Non-linear time variant system analysis, Jian-Jiun Ding(2013)