1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 数字图像处理第三版4.8.4例子GLPF高斯低通滤波器matlab程序

数字图像处理第三版4.8.4例子GLPF高斯低通滤波器matlab程序

时间:2022-10-08 20:41:14

相关推荐

数字图像处理第三版4.8.4例子GLPF高斯低通滤波器matlab程序

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。