数字图像处理.docx
- 文档编号:10480025
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:18
- 大小:1.25MB
数字图像处理.docx
《数字图像处理.docx》由会员分享,可在线阅读,更多相关《数字图像处理.docx(18页珍藏版)》请在冰点文库上搜索。
数字图像处理
第四次作业
1、理想低通滤波器
2、理想高通滤波器
3、巴特沃斯低通滤波器
4、巴特沃斯高通滤波器
5、高斯低通滤波器
6、高斯高通滤波器
1.1理想低通滤波器代码及图像
I=imread('C:
\Users\zc\Desktop\a.tif');
subplot(2,2,1);
imshow(I);
title('原图像');
s=fftshift(fft2(I));
subplot(2,2,2);
imshow(abs(s),[]);
title('图像傅里叶变换所得频谱');
[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
d=10;
fori=1:
a
forj=1:
b
distance=sqrt((i-a0)^2+(j-b0)^2);
ifdistance<=dh=1;
elseh=0;
end;
s(i,j)=h*s(i,j);
end;
end;
s=uint8(real(ifft2(ifftshift(s))));
subplot(2,2,3);
imshow(s);
title('低通滤波所得图像');
2.2理想高通滤波器代码及图像
I=imread('C:
\Users\zc\Desktop\a.tif');
subplot(2,3,1);
imshow(I);
title('原图像');
s=fftshift(fft2(I));
subplot(2,3,2);
imshow(abs(s),[]);
title('图像傅里叶变换所得频谱');
subplot(2,3,3);
imshow(log(abs(s)),[]);
title('图像傅里叶变换取对数所得频谱');
[a,b]=size(s);
a0=round(a/2);
b0=round(b/2);
d=10;
p=0.2;q=0.5;
fori=1:
a
forj=1:
b
distance=sqrt((i-a0)^2+(j-b0)^2);
ifdistance<=dh=0;
elseh=1;
end;
s(i,j)=(p+q*h)*s(i,j);
end;
end;
s=uint8(real(ifft2(ifftshift(s))));
subplot(2,3,4);
imshow(s);title('高通滤波所得图像');
subplot(2,3,5);
imshow(s+I);title('高通滤波所得高频增强图像');
总结:
这次按照低通滤波器和高通滤波器的定义,按照低通滤波的过程,一步一步写,先是进行傅里叶变换,再对其频谱进行平移,使其中心位于中心,再对此时的频谱进行‘圆形滤波’,刚开始纠结于公式,要怎么想出一个H(s)的滤波器的表达式,然后再进行相乘,后来没有想出来,就直接在每次循环里面直接进行乘法运算,如:
fori=1:
a
forj=1:
b
distance=sqrt((i-a0)^2+(j-b0)^2);
ifdistance<=dh=1;
elseh=0;
end;
s(i,j)=h*s(i,j);
end;
end;
后来低通滤波这么一写,高通滤波也就挺简单的了,没怎么想,把上面那个h=1和h=0的位置调换一下就变成了高通滤波器,至于高频增强,就改用了s(i,j)=(p+q*h)*s(i,j);
在想滤波器表达式怎么写的时候找了好多资料,结果别人的程序都没看懂,后来看到稍微有点接近的,就吸取了那种写法,写出以上程序。
3.3巴特沃斯低通滤波器代码及图像
I=imread('C:
\Users\zc\Desktop\a.tif');
subplot(1,2,1);
imshow(I);
title('原图像');
f=double(I);%数据类型转换,MATLAB不支持图像的无符号整型的计算
g=fft2(f);%傅立叶变换
g=fftshift(g);%转换数据矩阵
[M,N]=size(g);
nn=4;%四阶巴特沃斯(Butterworth)低通滤波器
d0=50;%截止频率为50
m=fix(M/2);n=fix(N/2);
fori=1:
M
forj=1:
N
d=sqrt((i-m)^2+(j-n)^2);
h=1/(1+0.414*(d/d0)^(2*nn));%计算低通滤波器传递函数
result(i,j)=h*g(i,j);
end
end
result=ifftshift(result);
H=ifft2(result);
A=uint8(real(H));
subplot(1,2,2),imshow(A),title('四阶巴特沃斯低通滤波图像');
4.4高斯低通滤波器代码及图像
I=imread('C:
\Users\zc\Desktop\a.tif');
subplot(1,2,1),imshow(I);
title('原图像');
s=fftshift(fft2(I));
[M,N]=size(s);%分别返回s的行数到M中,列数到N中
%GLPF滤波
d0=50;%初始化d0
n1=floor(M/2);%对M/2进行取整
n2=floor(N/2);%对N/2进行取整
fori=1:
M
forj=1:
N
d=sqrt((i-n1)^2+(j-n2)^2);%点(i,j)到傅立叶变换中心的距离
h(i,j)=1*exp(-1/2*(d^2/d0^2));%GLPF滤波函数
s(i,j)=h(i,j)*s(i,j);%GLPF滤波后的频域表示
end
end
s=ifftshift(s);%对s进行反FFT移动
%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数
s=uint8(real(ifft2(s)));
subplot(1,2,2),imshow(s);
title('高斯低通滤波图像(d0=50)');%显示GLPF滤波处理后的图像
总结:
图像高频分量对应于图像的细节信息,而低频分量对图像的整体视觉效果有着决定性的影响,而且阶数n越高,其幅频特性越好,低频检测信号保真度越高。
5.5巴特沃斯高通滤波器代码及图像
I=imread('C:
\Users\zc\Desktop\a.tif');
subplot(1,2,1),imshow(I);
title('原图像');
f=double(I);
g=fft2(f);
g=fftshift(g);
[M,N]=size(g);
nn=2;%2-gradeButterworthhighpassfilter
d0=15;%15,30,80其中以15为例
m=fix(M/2);n=fix(N/2);
fori=1:
M
forj=1:
N
d=sqrt((i-m)^2+(j-n)^2);
h=1/(1+0.414*(d/d0)^(2*nn));%filtertransformfunction
%h=1./(1+(d./d0).^(2*n))
%h=exp(-(d.^2)./(2*(d0^2)));
result(i,j)=(1-h)*g(i,j);
end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(1,2,2),imshow(J2);
title('二阶巴特沃斯高通滤波图像');
6.6高斯高通滤波器代码及图像
I=imread('C:
\Users\zc\Desktop\a.tif');
subplot(1,2,1),imshow(I);
title('原图像');
f=double(I);
g=fft2(f);
g=fftshift(g);
[M,N]=size(g);
d0=15;
m=fix(M/2);n=fix(N/2);
fori=1:
M
forj=1:
N
d=sqrt((i-m)^2+(j-n)^2);
h=exp(-(d.^2)./(2*(d0^2)));%gaussianfiltertransform
result(i,j)=(1-h)*g(i,j);
end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
subplot(1,2,2),imshow(J2);
title('高斯高通滤波图像(d0=15)');
总结:
(1)理想的高通滤波器把半径为d0的圆内的所有频率完全衰减掉,却使圆外的所有的频率无损的通过。
图像整体变得模糊,边缘和细节比较清晰。
(2)巴特沃思高通滤波器和高斯高通滤波器处理后的图像中只显现边缘,边缘的强度不同,而灰度平滑的区域都变暗了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理