個人簡介:?
> ??個人主頁:趙四司機
> ??學(xué)習(xí)方向:JAVA后端開發(fā)?
> ?往期文章:SpringBoot項目整合微信支付
> ??博主推薦網(wǎng)站:??途W(wǎng) 刷題|面試|找工作神器
> ??種一棵樹最好的時間是十年前,其次是現(xiàn)在!
> ??喜歡的話麻煩點點關(guān)注喔,你們的支持是我的最大動力。
前言:
通過這篇文章你將了解卷積理論與頻域的聯(lián)系,并且你還將學(xué)會頻域增強的兩個常用方法——低通濾波和高通濾波。
目錄
一:實驗原理
二:低通濾波
三:高通濾波
四:代碼實戰(zhàn)
1.實驗內(nèi)容
2.Butterworth低通濾波器
3.Butterworth高通濾波器
4.實驗分析
一:實驗原理
卷積理論是頻域技術(shù)的基礎(chǔ)。設(shè)函數(shù)f(x,y)與線性位不變算子h(x,y)的卷積結(jié)果是g(x,y),即
g(x,y)=h(x,y)*f(x,y) ????
那么,根據(jù)卷積定理在頻域有
G(u,v)=H(u,v)F(u,v) ????
其中,G(u,v)、H(u,v)、F(u,v)分別是 g(x,y)、h(x,y)、f(x,y)的傅立葉變換。頻域增強的主要步驟是:
- 計算所需增強圖的傅立葉變換;
- 將其與一個(根據(jù)需要設(shè)計的)轉(zhuǎn)移函數(shù)相乘;
- 在將結(jié)果進(jìn)行傅立葉反變換以得到增強的圖。
常用的頻域增強方法有低通濾波和高通濾波。下面分別介紹這兩種濾波方法。
二:低通濾波
圖像的能量大部分集中在幅度譜的低頻和中頻部分,而圖像的邊緣和噪聲對應(yīng)于高頻部分。因此能降低高頻成分幅度的濾波器就能減弱噪聲的影響。
Butterworth低通濾波器是一種物理上可以實現(xiàn)的低通濾波器。n階截斷頻率為d0的Butterworth低通濾波器的轉(zhuǎn)移函數(shù)為:
???????????????????????
% ?實現(xiàn)Butterworth低通濾波器
?I1=imread('lena.png');
?I2=imnoise(I1,'salt');
?f=double(I2);
?g=fft2(f); ????%采用傅立葉變換
?g=fftshift(g); %數(shù)據(jù)矩陣平移
?[N1,N2]=size(g);
?n=2;
?d0=50;
?d1=5;
?n1=fix(N1/2);
?n2=fix(N2/2);
?for i=1:N1
?????for j=1:N2
?????????d=sqrt((i-n1)^2+(j-n2)^2);
?????????%計算Butterworth低通變換函數(shù)
?????????h=1/(1+0.414*(d/d0)^(2*n));
?????????result(i,j)=h*g(i,j);
?????end
?end
?result=ifftshift(result);
?X2=ifft2(result);
?X3=uint8(real(X2));
三:高通濾波
高通濾波也稱高頻濾波,它的頻率值在0頻率處為單位1,隨著頻率的增長,傳遞函數(shù)的值逐漸增加;當(dāng)頻率增加到一定值后,傳遞函數(shù)的值通常又回到0值或者降低到某個大于1的值。在前一種情況下,高頻增強濾波器實際上是一種帶通濾波器,只不過規(guī)定0頻率處的增益為單位1。
在實際應(yīng)用中,為了減少圖像中面積大而且緩慢變化的成分的對比度,有時讓0頻率處的增益小于單位1更合適。如果傳遞函數(shù)通過原點,則可稱為laplacian濾波器。
%?實現(xiàn)Butterworth高通濾波器參考代碼
?%計算Butterworth高通變換函數(shù)
??????????if d==0
????????????h=0;
??????????else
????????????h=1/(1+(d1/d)^(2*n));
??????????end
????????????result(i,j)=h*g(i,j);
?result=ifftshift(result);
?X4=ifft2(result);
?X5=uint8(real(X2));
?figure(1),subplot(2,2,1),imshow(I1),title('原圖像');
?subplot(2,2,2),imshow(I2),title('加噪圖像');
subplot(2,2,3),imshow(X3),
title('Butterworth低通濾波器去噪圖像');
?subplot(2,2,4),imshow(X5),
title('Butterworth高通濾波器去噪圖像');
四:代碼實戰(zhàn)
1.實驗內(nèi)容
分別用兩張以上不同的圖片,實現(xiàn)Butterworth低通濾波器和Butterworth高通濾波器,?分別加入不同噪聲如高斯噪聲,椒鹽噪聲 (可選加入:指數(shù)分布噪聲,泊松噪聲,乘性噪聲),分析Butterworth高通和低通的濾波效果。分析比較Butterworth低通濾波器和不同空域平滑濾波器的差別,結(jié)合實驗結(jié)果對比圖進(jìn)行分析。?
2.Butterworth低通濾波器
function I = Butterworth_low(I_in)
f=double(I_in);
g=fft2(f); %采用傅立葉變換
g=fftshift(g); %數(shù)據(jù)矩陣平移
[N1,N2]=size(g);
result=zeros(N1,N2);
n=2;
d0=50;
n1=fix(N1/2);
n2=fix(N2/2);
for i=1:N1
for j=1:N2
d=sqrt((i-n1)^2+(j-n2)^2);
%計算Butterworth低通變換函數(shù)
h=1/(1+0.414*(d/d0)^(2*n));
result(i,j)=h*g(i,j);
end
end
result=ifftshift(result);
X2=ifft2(result);
I=uint8(real(X2));
end
%lena圖片
X1_1=Butterworth_low(I1_1);
figure,subplot(131),imshow(I1),title('lena原圖像');
subplot(132),imshow(I1_1),title('加入高斯噪聲');
subplot(133),imshow(X1_1),title('Butterworth低通濾波');
圖2.1-1 lena圖像加入高斯噪聲的低通濾波結(jié)果?
X1_2=Butterworth_low(I1_2);
figure,subplot(131),imshow(I1),title('lena原圖像');
subplot(132),imshow(I1_2),title('加入椒鹽噪聲');
subplot(133),imshow(X1_2),title('Butterworth低通濾波');
圖2.1-2 lena圖像加入椒鹽噪聲的低通濾波結(jié)果?
X1_3=Butterworth_low(I1_3);
figure,subplot(131),imshow(I1),title('lena原圖像');
subplot(132),imshow(I1_3),title('加入泊松噪聲');
subplot(133),imshow(X1_3),title('Butterworth低通濾波');
圖2.1-3 lena圖像加入泊松噪聲的低通濾波結(jié)果
%pout圖片
X2_1=Butterworth_low(I2_1);
figure,subplot(131),imshow(I2),title('pout原圖像');
subplot(132),imshow(I2_1),title('加入高斯噪聲');
subplot(133),imshow(X2_1),title('Butterworth低通濾波');
圖2.1-4 pout圖像加入高斯噪聲的低通濾波結(jié)果
X2_2=Butterworth_low(I2_2);?
figure,subplot(131),imshow(I2),title('pout原圖像');
subplot(132),imshow(I2_2),title('加入椒鹽噪聲');
subplot(133),imshow(X2_2),title('Butterworth低通濾波');
圖2.1-5 pout圖像加入椒鹽噪聲的低通濾波結(jié)果
X2_3=Butterworth_low(I2_3);
figure,subplot(131),imshow(I2),title('pout原圖像');
subplot(132),imshow(I2_3),title('加入泊松噪聲');
subplot(133),imshow(X2_3),title('Butterworth低通濾波');
圖2.1-6 ?pout圖像加入泊松噪聲的低通濾波結(jié)果
%自定義scenery圖像
X3_1=Butterworth_low(I3_1);
figure,subplot(131),imshow(I3),title('scenery原圖像');
subplot(132),imshow(I3_1),title('加入高斯噪聲');
subplot(133),imshow(X3_1),title('Butterworth低通濾波');
圖2.1-7 scenery圖像加入高斯噪聲的低通濾波結(jié)果
X3_2=Butterworth_low(I3_2);
figure,subplot(131),imshow(I3),title('scenery原圖像');
subplot(132),imshow(I3_2),title('加入椒鹽噪聲');
subplot(133),imshow(X3_2),title('Butterworth低通濾波');
圖2.1-8 scenery圖像加入椒鹽噪聲的低通濾波結(jié)果
X3_3=Butterworth_low(I3_3);
figure,subplot(131),imshow(I3),title('scenery原圖像');
subplot(132),imshow(I3_3),title('加入泊松噪聲');
subplot(133),imshow(X3_3),title('Butterworth低通濾波');
圖2.1-9 scenery圖像加入泊松噪聲的低通濾波結(jié)果
3.Butterworth高通濾波器
function I = Butterworth_high(I_in)
????f=double(I_in);
????g=fft2(f); ????%采用傅立葉變換
????g=fftshift(g); %數(shù)據(jù)矩陣平移
????[N1,N2]=size(g);
????result=zeros(N1,N2);
????n=2;
????d1=5;
????n1=fix(N1/2);
????n2=fix(N2/2);
????for i=1:N1
????????for j=1:N2
????????????d=sqrt((i-n1)^2+(j-n2)^2);
????????????%計算Butterworth低通變換函數(shù)
????????????if d==0
????????????????h=0;
????????????else
????????????????h=1/(1+(d1/d)^(2*n));
????????????end
????????????result(i,j)=h*g(i,j);
????????end
????end
????result=ifftshift(result);
????X2=ifft2(result);
????I=uint8(real(X2));
end
圖2.2-1 lena圖像加入高斯噪聲的高通濾波結(jié)果
圖2.2-2 lena圖像加入椒鹽噪聲的高通濾波結(jié)果
圖2.2-3 lena圖像加入泊松噪聲的高通濾波結(jié)果
圖2.2-4 pout圖像加入高斯噪聲的高通濾波結(jié)果
圖2.2-5 pout圖像加入椒鹽噪聲的高通濾波結(jié)果
圖2.2-6 pout圖像加入泊松噪聲的高通濾波結(jié)果
圖2.2-7 scenery圖像加入高斯噪聲的高通濾波結(jié)果
圖2.2-8 scenery圖像加入椒鹽噪聲的高通濾波結(jié)果
圖2.2-9 scenery圖像加入泊松噪聲的高通濾波結(jié)果
注:為了便于調(diào)用,我將低通高通濾波封裝成了函數(shù)的形式,然后再對不同的圖片進(jìn)行函數(shù)調(diào)用;為了節(jié)省篇幅,這里僅將主要代碼放上來,且不再將Butterworth高通濾波的調(diào)用代碼放上來。
4.實驗分析
圖像增強可以分為空間域、頻率域和彩色增強,其包含的內(nèi)容如下圖所示:
低通高通濾波是在頻率域上對圖像的增強,而中值濾波、均值濾波等則是在空間域上對圖像的增強。
????????一開始我的理解為對于二值圖像,當(dāng)某一像素點與中心點的距離大于D0時,該點的像素值就會被置0,因為根據(jù)理想低通濾波函數(shù)當(dāng)D>D0時H=0,當(dāng)D<=D0時,H=1,而G(u,v)=H(u,v)F(u,v),由于這時候做的是頻域上的處理,故不需要進(jìn)行卷積操作,只需要做乘積操作。這就是問題的關(guān)鍵所在,乘積操作是作用在頻域上的,頻域上的點不一一和空域上的點對應(yīng),所以濾波后的結(jié)果并不是說距離中心點距離大于D0就置0。而對應(yīng)于空域,可將h(x,y)分為兩部分:原點處的中心部分,中心周圍集中的成周期分布的外圍部分。前者決定模糊,后者決定振鈴現(xiàn)象。理想低通濾波器函數(shù)轉(zhuǎn)換為空域后,對應(yīng)的函數(shù)圖像兩邊對稱的余波就是造成振鈴現(xiàn)象的原因。
????????低通濾波器,顧名思義就是將高頻的圖像信息過濾掉讓低頻部分通過,由于低頻部分表示圖像變化緩慢的部分,故低通濾波器可以實現(xiàn)過濾噪聲,平滑圖像的功能。低通濾波器有多種,理想的低通濾波器非常尖銳,其在以原點為圓心、D0為半徑的園內(nèi),通過所有的頻率,而在圓外截斷所有的頻率。從上面實驗結(jié)果可以看到,布特沃斯低通濾波對于各種噪聲的去除效果還是比較理想的,但是實驗中發(fā)現(xiàn)對變化較平緩的圖像(如pout圖像),無論是加入高斯噪聲還是椒鹽噪聲,布特沃斯低通濾波的去噪效果并不明顯(見圖2.1-4)。我猜想其中的原因是由于圖像加入噪聲之后絕大部分也還是低頻信息,通過布特沃斯低通濾波器后絕大多數(shù)的噪聲未能被過濾掉。因此可以考慮將截止頻率D0調(diào)低,將D0由50調(diào)至30,可以有效去除噪聲,但是隨之而來的是圖像的模糊問題(見下圖)。
????????除此之外,當(dāng)布特沃斯低通濾波器的階很大時(截止頻率也要較?。?,這是其效果就接近理想低通濾波器,會產(chǎn)生振鈴現(xiàn)象(見下圖)。
????????對于布特沃斯高通濾波,其作用是過濾掉圖像的低頻部分,保留圖像的高頻部分。由于圖像的高頻部分對應(yīng)著圖像的邊緣,所以通過高通濾波后的效果是得到圖像的邊緣,達(dá)到圖像銳化的作用。由于圖像噪聲對應(yīng)著高頻部分,所以高通濾波會把噪聲保留下來。對于變化平緩的圖像(如pout圖像),在參數(shù)不變的情況下可以看到加入椒鹽噪聲后銳化效果不明顯(得到的邊緣不清晰,見圖2.2-5)。這是就需要調(diào)整參數(shù),以改變其對邊緣檢測的“靈敏度”,這就說明要降低截止頻率,讓更多的相對低頻的信息能通過,將截止頻率由5降至3,得到結(jié)果見下圖,可以看到圖像的邊緣更清晰了一些,盡管則會導(dǎo)致噪聲的增加。
文章來源:http://www.zghlxwxcb.cn/news/detail-791610.html
????????均值濾波、中值濾波等都是直接在空域上對圖像進(jìn)行處理,而布特沃斯低通濾波器是在頻域上對圖像進(jìn)行處理,所以在處理上面布特沃斯低通濾波器的處理過程要更“細(xì)膩”一些。對于不同的噪聲,布特沃斯都能帶來較好的降噪效果,而對于空域上面的平滑濾波,均值濾波會導(dǎo)致圖像的邊緣模糊化,中值濾波可能會改變圖像的性質(zhì)。文章來源地址http://www.zghlxwxcb.cn/news/detail-791610.html
到了這里,關(guān)于【計算機視覺】圖像分割與特征提取——頻域增強(低通濾波&高通濾波)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!