利用Matlab模拟空间滤波实验
阿贝成像原理是在透镜后焦面上得到光场空间频率分布的傅立叶变换,成像又是一次逆变换的过程,这种变换可由快速傅立叶变换(FFT)轻松实现。利用阿贝—波特实验装置和空间滤波系统,从改变频谱入手改造一幅光学图像,可以进行光学信息处理。本文在此基础上,用Matlab强大的计算及图像可视化功能完成阿贝—波特实验的物理模型的构建并进行计算机模拟,从而实现数字图像的处理。
![]()
![]()
二维光栅的频谱
x=ones(100,100) %创建矩阵
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即是其频谱。可以看出,模拟的结果与实验中所观测到的图像是一致的。而且模拟图像更加清晰结果更加准确。
![]()
网格“光”字的滤波
滤波程序如下:
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,[])
![]()
![]()
光栅为一周期性函数,其频谱是有规律排列的离散点阵,而字迹不是周期性函数,它的频谱是连续的,一般不容易看清楚,由于光字笔画较粗,其空间低频成分较多,因此频谱面的光轴附近只有光字信息而没有网格信息。经过低通滤波,滤掉了物的高频信息,处理图像显示了物的低频信息即光字。由于经过滤波后的图像能量有所损失导致输出图像比原图像模糊。
零频滤波
主程序如下:
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 ] |