利用Matlab模擬空間濾波實驗
阿貝成像原理是在透鏡后焦面上得到光場空間頻率分布的傅立葉變換,成像又是一次逆變換的過程,這種變換可由快速傅立葉變換(FFT)輕松實現(xiàn)。利用阿貝—波特實驗裝置和空間濾波系統(tǒng),從改變頻譜入手改造一幅光學圖像,可以進行光學信息處理。本文在此基礎上,用Matlab強大的計算及圖像可視化功能完成阿貝—波特實驗的物理模型的構(gòu)建并進行計算機模擬,從而實現(xiàn)數(shù)字圖像的處理。
![]()
![]()
二維光柵的頻譜
x=ones(100,100) %創(chuàng)建矩陣
x(1:9:100,:)=0 %得到1 維光柵
y=x.*(x’) %得到2 維光柵
C=fft2(y,200,200) %傅立葉變換
p=abs(fftshift(z)) %變換像限并取模
imshow(0.01*p) %以一定比例顯示圖像
圖11 即是二維光柵y,圖12即是其頻譜?梢钥闯,模擬的結(jié)果與實驗中所觀測到的圖像是一致的。而且模擬圖像更加清晰結(jié)果更加準確。
![]()
網(wǎng)格“光”字的濾波
濾波程序如下:
clear
f=imread('w1.bmp');
figure,imshow(f);title('原始圖像');
PQ=paddedsize(size(f));
[U,V]=dftuv(PQ(1),PQ(2));
D0=0.03*PQ(2);
F=fft2(f,PQ(1),PQ(2));%傅立葉變換
g=abs(fftshift(F));
figure,imshow(0.00001*g);title('點陣圖');
x=1:15:1000;y=1:15:1000;
figure,mesh(x,y,g(x,y));colormap(jet);
H=lpfilter('gaussian',PQ(1),PQ(2),D0);
g=dftfilt(f,H);H=fftshift(H);
figure,mesh(H(1:10:1000,1:10:1000));
axis([0 100 0 100 0 1])
figure, imshow(H,[])
figure, imshow(g,[])
![]()
![]()
光柵為一周期性函數(shù),其頻譜是有規(guī)律排列的離散點陣,而字跡不是周期性函數(shù),它的頻譜是連續(xù)的,一般不容易看清楚,由于光字筆畫較粗,其空間低頻成分較多,因此頻譜面的光軸附近只有光字信息而沒有網(wǎng)格信息。經(jīng)過低通濾波,濾掉了物的高頻信息,處理圖像顯示了物的低頻信息即光字。由于經(jīng)過濾波后的圖像能量有所損失導致輸出圖像比原圖像模糊。
零頻濾波
主程序如下:
clear
I1=imread('w3.bmp');
imshow(I1);title('原始圖像');
figure
f=double(I1);
g=fft2(f); %傅立葉變換
g=fftshift(g);
[result1,result2]=filt(g);
result1=ifftshift(result1);
result2=ifftshift(result2);
X2=ifft2(result1);
X3=uint8(real(X2));
imshow(X3);
title('Butterworth濾波圖像');
顯示出設計的一個高通濾波器程序如下:
H=fftshift(hpfilter('gaussian',500,500,20));
mesh(H(1:10:500,1:10:500));colormap(jet);
axis([0 50 0 50 0 1])
其平面顯示如圖22所示,立體圖如圖23所示。
![]()
[ Last edited by zhaoyuan0426 on 2012-4-15 at 17:08 ] |