clear
%字符识别的应用
A=imread(‘C:\Users\Documents\Tencent Files\949109908\FileRecv\Assignment03\Assignment03\Fig0419(a)(text_gaps_of_1_and_2_pixels).tif’);
OUT1=GLPF(A,80);
figure;
subplot(1,2,1); imshow(A); title(‘低分辨率文本’);
subplot(1,2,2); imshow(OUT1); title(‘使用DLPF对图像滤波后的结果’);
%印刷和出版业
B=imread(‘C:\Users\Documents\Tencent Files\949109908\FileRecv\Assignment03\Assignment03\Fig0450(a)(woman_original).tif’);
OUT2=GLPF(B,100);
OUT3=GLPF(B,80);
figure;
subplot(1,3,1); imshow(B); title(‘原图像’);
subplot(1,3,2); imshow(OUT2); title(‘D0=100的GLPF结果’);
subplot(1,3,3); imshow(OUT3); title(‘D0=80的GLPF结果’);
%卫星图像和航空图像的处理
C=imread(‘C:\Users\Documents\Tencent Files\949109908\FileRecv\Assignment03\Assignment03\Fig0451(a)(satellite_original).tif’);
OUT4=GLPF(C,50);
OUT5=GLPF(C,20);
figure;
subplot(1,3,1); imshow©; title(‘显示有突出扫描线的图像’);
subplot(1,3,2); imshow(OUT4); title(‘D0=50的GLPF结果’);
subplot(1,3,3); imshow(OUT5); title(‘D0=20的GLPF结果’);
%GLPF高斯低通滤波器函数
function [out] = GLPF(in,D0)%规定GLPF为高斯低通滤波器,D0为截止频率
f=im2double(in);%将输入图像转变为灰度图像
m=size(f,1);
n=size(f,2);
p=2m;
q=2n;
%一副大小为mn的输入图像f(x,y),得到填充参数p=2m,q=2*n;
g=zeros(p,q);
g(1:m,1:n)=f(1:m,1:n);%形成大小为p×q的填充零矩阵图像g(x,y)
%用(-1)^(x+y)乘以g(x,y)移到其变换的中心
for i=1:p
for j=1:q
g(i,j)=(-1)^(i+j)double(g(i,j));
end
end
F=fft2(g,p,q);%计算图像g(i,j)的DFT,得到F(u,v)
%生成大小为p×q的滤波函数H(u,v),用阵列相乘形成乘积G(u,v)=H(u,v)F(u,v)
H=zeros(p,q);
a=2(D0^2);%由公式4.8-7得到
for u=1:p
for v=1:q
D=(u-p/2)2+(v-q/2)2;%D是距频率矩形中心的距离
H(u,v)=exp(-D./a);%公式4.8-7
end
end
G=F.*H; %频率域滤波
%得到处理后的图像
h=ifft2(G); %频域转换到时域图像
h=real(h);
for s=1:p
for t=1:q
h(s,t)=(-1)^(s+t)*double(h(s,t));
end
end
%通过从gp(x,y)的左上象限提取M×N区域,得到最终处理结果g(x,y)
out=h(1:m,1:n);
end
|
请发表评论