理想低通濾波器、Butterworth濾波器和高斯濾波器(matlab)
文章推薦指數: 80 %
理想低通濾波器在以原點為圓心、D0為半徑的園內,通過所有的頻率,而在圓外截斷所有的頻率。
(圓心的頻率最低,為變換的直流(dc)分量)。
函式如下:. 可以 ...
程式人生>>理想低通濾波器、Butterworth濾波器和高斯濾波器(matlab)
理想低通濾波器、Butterworth濾波器和高斯濾波器(matlab)
阿新••發佈:2019-02-14
一、簡介我們知道,在一幅影象中,其低頻成分對應者影象變化緩慢的部分,對應著影象大致的相貌和輪廓。
而其高頻成分則對應著影象變化劇烈的部分,對應著影象的細節(影象的噪聲也屬於高頻成分)。
低頻濾波器,顧名思義,就是過濾掉或者大幅度衰減影象的高頻成分,讓影象的低頻成分通過。
低頻濾波器可以平滑影象,慮去影象的噪聲。
而與此相反的高頻濾波器,則是過濾低頻成分,通過高頻成分,可以達到銳化影象的目的。
理想低通濾波器的濾波非常尖銳,而高斯低通濾波器的濾波則非常平滑。
Butterworth低通濾波器則介於兩者之間,當Butterworth低通濾波器的階數較高時,接近於理想低通濾波器,階數較低時,則接近於高斯低通濾波器。
下面我們所說的都是對應於二維影象處理的情況。
二、這三種濾波器的相關介紹在這三種低通濾波器的表示式中,我們都用D0來表示其截止頻率。
D(u,v)表示距離頻率矩形中心的距離。
我並沒有說明振鈴現象產生的原因,只是說明了什麼情況下振鈴現象較為明顯。
1.理想低通濾波器(ILPF)理想低通濾波器在以原點為圓心、D0為半徑的園內,通過所有的頻率,而在圓外截斷所有的頻率。
(圓心的頻率最低,為變換的直流(dc)分量)。
函式如下:可以看出,理想低通濾波器的過渡非常急劇,會產生振鈴現象。
2.Butterworth低通濾波器函式表示式如下(在有些書中,Butterworth的函式的平方才等於右邊的表示式,在這裡我們按照課本的寫法,計算較為方便),其中n稱為Butterworth低通濾波器的階數:從濾波器的函式圖中,我們可以看出其過渡沒有理想低通濾波器那麼劇烈,從圖(c)中可以看出,階數越高,濾波器的過度越劇烈,振鈴現象將越明顯。
3.高斯低通濾波器(GLPF)函式表示式如下:高斯濾波器的過度特性非常平坦,因此不會產生振鈴現象。
三、頻域濾波步驟1.基本步驟1.給定一幅大小為m*n的影象f(x,y)。
選擇適當的填充引數P和Q,一般令P=2m,Q=2n。
2.對影象f(x,y)填充0,填充後得到影象大小為P*Q的影象fp(x,y)。
3.用(-1)^(x+y)乘以fp(x,y)將其移到變換中心(中心化)。
4.計算fp(x,y)的DFT,得到F(u,v)。
5.生成一個實的,對稱的濾波函式H(u,v),大小為P*Q,中心在(P/2,Q/2)處。
然後相乘(矩陣點乘)得到G(u,v)=H(u,v)F(u,v)。
6.對G(u,v)反傅立葉變換,然後取實部,再乘以(-1)^(x+y)進行反中心變換最後得到gp(x,y)。
7.提取gp(x,y)左上角的m*n區域,對提取的部分進行標準化處理,得到最終的結果影象g(x,y)。
2.相關步驟說明1.對影象進行0填充,得到大小為P*Q的影象,主要是為了避免在迴圈卷積中出現的纏繞錯誤。
當兩個矩陣大小相同時,P≥2m-1,Q≥2n-1時可以避免環繞錯誤。
由於對於偶數尺寸的矩陣計算其傅立葉變換較快,因此P取2m,Q取2n。
2.影象乘以(-1)^(x+y),再對影象進行傅立葉變換可以得到將原點移到中心的傅立葉變換。
這樣,對於F(u,v)來說,中心的頻率最低,四周的頻率較高。
每一點的值表示該頻率對於的幅度。
在matlab中,也可以不乘以(-1)^(x+y),直接對填充後的影象進行傅立葉變換,之後使用fftshift函式對其傅立葉變換進行中心化。
得到的結果是一樣的。
3.由於影象是一個實函式,所以其傅立葉變換是一個旋轉對稱的傅立葉變換。
4.關於對稱中心。
課本中指出,對於一個長度為M的一維序列,當M為偶數時,位置0和M/2呈現零的特性,當M為奇數時,只有位置0呈現零的特性。
因此,在matlab中,由於矩陣下標是從1開始的,我們的P=2m,Q=2n。
因此中心點的位置為(P/2+1,Q/2+1),即(m+1,n+1)。
5.標準化處理。
對最終得到的影象每一點的值進行處理。
使其範圍變為[0,255]的uint8。
或者[0,1.0]的double值。
四、matlab程式碼實現Butterworth低通濾波器在使用matlab程式碼的實現過程中,對於這三種低通濾波器,只是在實驗低通濾波器函式H(u,v)的程式碼中有部分不同,其他部分一致。
因此,在下面中,只給出實現Butterworth低通濾波器的程式碼,不給出其他兩種濾波器的程式碼。
1. Butterworth濾波器的程式碼如下:該函式為Bfilter,輸入為需要進行Butterworth濾波的灰度影象,Butterworth濾波器的截止頻率D0以及Butterworth濾波器的階數n。
輸出為進行濾波之後的影象(影象的值已經歸一化到[[0,255])。
function[image_out]=Bfilter(image_in,D0,N)
%Butterworth濾波器,在頻率域進行濾波
%輸入為需要進行濾波的灰度影象,Butterworth濾波器的截止頻率D0,階數N
%輸出為濾波之後的灰度影象
[m,n]=size(image_in);
P=2*m;
Q=2*n;
fp=zeros(P,Q);
%對影象填充0,並且乘以(-1)^(x+y)以移到變換中心
fori=1:m
forj=1:n
fp(i,j)=double(image_in(i,j))*(-1)^(i+j);
end
end
%對填充後的影象進行傅立葉變換
F1=fft2(fp);
%生成Butterworth濾波函式,中心在(m+1,n+1)
Bw=zeros(P,Q);
a=D0^(2*N);
foru=1:P
forv=1:Q
temp=(u-(m+1.0))^2+(v-(n+1.0))^2;
Bw(u,v)=1/(1+(temp^N)/a);
end
end
%進行濾波
G=F1.*Bw;
%反傅立葉變換
gp=ifft2(G);
%處理得到的影象
image_out=zeros(m,n,'uint8');
gp=real(gp);
g=zeros(m,n);
fori=1:m
forj=1:n
g(i,j)=gp(i,j)*(-1)^(i+j);
end
end
mmax=max(g(:));
mmin=min(g(:));
range=mmax-mmin;
fori=1:m
forj=1:n
image_out(i,j)=uint8(255*(g(i,j)-mmin)/range);
end
end
end2.測試程式碼如下測試時Butterworth濾波器的階數為2。
截止頻率分別為10,30,60,160,460。
clearall;
closeall;
clc;
image1=imread('3.bmp');
image2=Bfilter(image1,10,2);
image3=Bfilter(image1,30,2);
image4=Bfilter(image1,60,2);
image5=Bfilter(image1,160,2);
image6=Bfilter(image1,460,2);
%顯示影象
subplot(2,3,1),imshow(image1),title('原影象');
subplot(2,3,2),imshow(image2),title('D0=10,n=2');
subplot(2,3,3),imshow(image3),title('D0=30,n=2');
subplot(2,3,4),imshow(image4),title('D0=60,n=2');
subplot(2,3,5),imshow(image5),title('D0=160,n=2');
subplot(2,3,6),imshow(image6),title('D0=460,n=2');3.執行結果如下,可以看出,與課本給出的結果一致。
switch語句使用時注意事項
«上一篇
JS開發中的幾個彰顯水準的技巧下一篇»
相關推薦
理想低通濾波器、Butterworth濾波器和高斯濾波器(matlab)
一、簡介我們知道,在一幅影象中,其低頻成分對應者影象變化緩慢的部分,對應著影象大致的相貌和輪廓。
而其高頻成分則對應著影象變化劇...
5.6.2低通濾波器(理想低通+巴特沃斯低通濾波器)
1.低通濾波器低通濾波是將頻域影象中的高頻部分濾除而通過低頻部分。
影象的邊緣和噪聲對應於頻域影象中的高頻部分,而低通濾波的作用即是減弱這部分的能...
4.6.2低通濾波器(理想低通+巴特沃斯低通濾波器)
1.低通濾波器
低通濾波是將頻域影象中的高頻部分濾除而通過低頻部分。
影象的邊緣和噪聲對應於頻域影象中的高頻部分,而低通濾波的作...
基於opencv的理想低通濾波器和巴特沃斯低通濾波器
首先看個圖瞭解下什麼是理想低通濾波器公式和圖是轉自Rolin的專欄
低通濾波器
1.理想的低通濾...
理想的低通濾波器、巴特沃斯濾波器、高斯濾波器
低通濾波器
1.理想的低通濾波器
其中,D0表示通帶的半徑。
D(u,v)的計算方...
matlab理想帶通濾波
理想帶通使用如下函式,dim是維度,如果input是一維,則dim=1
%FILTERED=ideal_bandpassing(I...
影象處理基礎(4):高斯濾波器詳解
本文主要介紹了高斯濾波器的原理及其實現過程
高斯濾波器是一種線性濾波器,能夠有效的抑制噪聲,平滑影象。
其作用原理和均值濾波器類似,都是取濾波器視窗內的畫素的均值...
vs2015+opencv3.3.1實現灰度高斯濾波器
3.3edwinonteightendwidimgprei++
#include
延伸文章資訊
- 1低通濾波器- 維基百科,自由的百科全書
理想與實際濾波器
- 2ideal filter - 理想濾波器 - 國家教育研究院雙語詞彙
理想濾波器. ideal filter. 2003年6月 資訊與通信術語辭典. 名詞解釋: 指能使特定頻率區域的波形通過並保持不變,而對其他區域的波形全部抑制的濾波器。
- 3理想滤波_百度百科
理想滤波器是指能使通带内信号的幅值和相位都不失真,阻带内的频率成分都衰减为零的滤波器,其通带和阻带之间有明显的分界线。也就是说,理想滤波器在通带内的幅频特性 ...
- 4理想低通濾波器_百度百科
是一種假想的低通濾波器,其對於高於截止頻率的信號截止,而對於低於截止頻率的信號無失真傳輸。 中文名. 理想低通濾波器. 外文名. Ideal Lowpass Filter. 快速導航.
- 5理想低通滤波器可以物理实现吧? - 知乎
对于理想低通滤波器,能看到的资料都说它是“非物理”的,理由是对应的时域是非因果的,也就是时间为0时…