几种简单的滤波方式(未完)
從統計學的觀點來看,凡是統計特征不隨時間變化的噪聲稱為平穩噪聲,而統計特征隨時間變化的噪聲稱為非平穩噪聲。幅值基本相同,但是噪聲出現的位置是隨機的,稱為椒鹽噪聲;如果噪聲的幅值是隨機的,根據幅值大小的分布,有高斯型和瑞利型兩種,分別稱為高斯噪聲和瑞利噪聲。由于去除噪聲處理的原理和方法很多,這里只給出了簡單的描述和我自己已實現的幾種方法的java源代碼。
常見的去噪處理有均值濾波,中值濾波,灰度最小方差均值濾波,K近鄰平滑濾波,對稱近鄰均值濾波,西戈瑪平滑濾波等。
均值濾波
定義
均值濾波方法是,對待處理的當前像素,選擇一個模板,該模板為其鄰近的若干個像素組成,用模板的均值來替代原像素的值的方法。
如下圖,1~8為(x,y)的鄰近像素。
權系數矩陣模板
g?=?(f(x-1,y-1)?+?f(x,y-1)+?f(x+1,y-1)?+?f(x-1,y)?+?f(x,y)?+?f(x+1,y)? +?f(x-1,y+1)?+?f(x,y+1)?+?f(x+1,y+1))/9
方法優缺點
優點:算法簡單,計算速度快;對高斯噪聲的處理效果好
缺點:降低噪聲的同時使圖像產生模糊,特別是景物的邊緣和細節部分。
代碼:
I=imread('lena.jpg'); [m n]=size(I); I1=zeros(m,n); for i=2:m-1 for j=2:n-1 for k=-1:1 for p=-1:1 I1(i,j)=I1(i,j)+I(i+k,j+p)*1/9; end end end end imshow(I1,[]);
中值濾波
定義
中值濾波方法是,對待處理的當前像素,選擇一個模板,該模板為其鄰近的若干個像素組成,對模板的像素由小到大進行排序,再用模板的中值來替代原像素的值的方法。
權系數矩陣模板
g?=?median[(x-1,y-1)?+?f(x,y-1)+?f(x+1,y-1)? +?f(x-1,y)?+?f(x,y)?+?f(x+1,y)? +?f(x-1,y+1)?+?f(x,y+1)?+?f(x+1,y+1)]
代碼:
x=imread('lena.jpg'); y=imnoise(x,'salt & pepper',0.04); %加椒鹽噪聲 z=medfilt2(y(:,:),[5 5],'symmetric'); %中值濾波 imshow(z); imwrite(z,'medfilt.jpg'); title('zhongzhilvbo');中值濾波的:主要針對椒鹽噪聲的處理效果好;
3、高斯平滑濾波器(Gaussian Smoothing Filter)
高斯平滑濾波器被使用去模糊圖像,和均值濾波器差不多,但是和均值濾波器不一樣的地方就是核不同。均值濾波器的核每一個值都是相等,而高斯平滑濾波器的核內的數卻是呈現高斯分布的。
對于二維高斯分布:
它的分布圖如下:
作為高斯平滑濾波器的核就應該呈現出上圖的布局,例如:
一般而言,高斯平滑濾波器要優于均值濾波器。
一般在使用時我們用的模板是:
[1 2 1;2 4 2;1 2 1]/16 ? 的模板
編程類似中值濾波的過程
總結
以上是生活随笔為你收集整理的几种简单的滤波方式(未完)的全部內容,希望文章能夠幫你解決所遇到的問題。