首先了解一下圖像存在的噪聲類型,這樣才能使我們在圖像處理中思路更加清晰,以下的內容都來自於中英文文獻和互聯網,在此就不對每一個參考一一列出。
目前大多數數字圖像系統中,輸入圖像都是采用先凍結再掃描方式將多維圖像變成一維電信號,再對其進行處理、存儲、傳輸等加工變換。最后往往還要在組成多維圖像信號,而圖像噪聲也將同樣受到這樣的分解和合成。在這些過程中電氣系統和外界影響將使得圖像噪聲的精確分析變得十分復雜。另一方面圖像只是傳輸視覺信息的媒介,對
圖像信息的認識理解是由人的視覺系統所決定的。不同的圖像噪聲,人的感覺程度是不同的,這就是所謂人的噪聲視覺特性課題。
圖像噪聲在
數字圖像處理技術中的重要性越來越明顯,如高放大倍數航片的判讀,X射線圖像系統中的噪聲去除等已經成為不可缺少的技術步驟。下面就是對圖像噪聲基本知識的介紹:其中最主要的有兩類:電子噪聲和光電子噪聲,當然如果在核輻射的環境下,圖像會呈現出一種雪花狀的噪聲,此類噪聲更加復雜,需要運用多種去噪方法才能檢查以及降噪。
圖像噪聲從統計理論觀點可以分為圖像噪聲從統計理論觀點可以分為平穩和非平穩噪聲兩種。在實際應用中,不去追究嚴格的數學定義,這兩種噪聲可以理解為:其統計特性不隨時間變化的噪聲稱其為平穩噪聲。其統計特性隨時間變化而變化的稱其為非平穩噪聲。
還可以按噪聲幅度隨時間分布形狀來定義,如其幅度分布是按高斯分布的就稱其為高斯噪聲,而按雷利分布的就稱其為雷利噪聲。
瑞利分布(Rayleigh distribution)
當一個隨機二維向量的兩個分量呈獨立的、有着相同的方差的正態分布時,這個向量的模呈瑞利分布。瑞利分布的概率密度函數是[1]
高斯噪聲
高斯噪聲是一種具有正態分布(也稱作高斯分布)概率密度函數的噪聲。換句話說,高斯噪聲的值遵循高斯分布或者它在各個頻率分量上的能量具有高斯分布。它被極其普遍地應用為用以產生加成性高斯白噪聲(AWGN)的迭代白噪聲。噪聲PDF如下:z代表圖像灰度,u是z的均值,o是z的標准差,所以高斯噪聲的灰度值大多集中在圖像的均值附近,因此均值濾波器主要適合於去除高斯噪聲,具體方法可以用matlab實現,但是matlab僅僅適合仿真看現象,正真在現實生活中我們需要的實際的降噪,比如用FPGA等等。
matlab代碼分析:
%Main函數: diagram = imread('C:\Users\Administrator\Desktop\Compressed\fiter\lena256.jpg');%讀入圖片 diagram = rgb2gray(diagram);%將圖片轉換為灰度圖 figure,imshow(diagram),title('Original picture');%顯示原圖 diagram_n = imnoise(diagram,'salt & pepper',0.01);%加入噪聲 figure,imshow(diagram_n),title('Picture with noise');%顯示加入噪聲的圖片 r=3;%構造濾波器模板 r為行數,c為列數 c=3; sigma = 1;%高斯函數中的參數sigma
w_a = fspecial('average',[r c]);%用Matlab自帶函數構造均值濾波器 diagram_a2 = imfilter(diagram_n,w_a,'replicate');%用Matlab自帶函數進行均值濾波 figure,imshow(diagram_a2),title('Average filter by Matlab');%顯示濾波后的圖片
w_g = fspecial('gaussian',[r c],1);%用Matlab自帶函數構造高斯濾波器 diagram_g2 = imfilter(diagram_n,w_g,'replicate');%用Matlab自帶函數進行均值濾波 figure,imshow(diagram_g2),title('Gaussian filter by Matlab');%顯示濾波后的圖片
脈沖噪聲
脈沖噪聲是非連續的,由持續時間短和幅度大的不規則脈沖或噪聲尖峰組成,產生脈沖噪聲的原因多種多樣,其中包括電磁干擾以及通信系統的故障和缺陷,也可能在通信系統的電氣開關和繼電器改變狀態時產生。由於脈沖噪聲不具有像高斯噪聲一樣的統計特征,因此一般采用中值濾波器用於消除脈沖噪聲。
%中值濾波 %diagram_m1 = filter_wq(diagram_n,[r c],'med',0);%調用自編函數進行中值濾波 %figure,imshow(diagram_m1),title('Med filter by WQ');%顯示濾波后的圖片 diagram_m2=medfilt2(diagram_n,'symmetric');%用Matlab自帶函數對圖像進行中值濾波 figure,imshow(diagram_m2),title('Med filter by Matlab');%顯示濾波后的圖片