实验四 图像频域高通滤波
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图像处理实验报告
姓名:田蕾 学号:20091202098 专业:信号与信息处理 年级:09
实验四 图像频域高通滤波
一、 实验目的
掌握常用频域高通滤波器的设计。进一步加深理解和掌握图像频谱的特点和频域高通滤波的原理。理解图象高通滤波的处理过程和特点。
二、 实验内容
设计程序,分别实现截止频率半径分别为15、30、80理想高通滤波器、二阶巴特沃斯高通滤波器、二阶高斯高通滤波器对图像的滤波处理。观察处理前后图像效果,分析实验结果和算法特点。
三、 实验原理
二维理想高通滤波器的传递函数为:
000.(,)(,) 1.(,)D u v D H u v D u v D ≤⎧=⎨>⎩
D0是从频率矩形中点测得的截止频率长度,它将以D0为半径的圆周内的所有频率置零,而毫不衰减地通过圆周外的任何频率。但其物理上是不可实现的。
巴特沃斯高通滤波器的传递函数为:
201(,)1[](,)
n H u v D D u v =+ 式中D0为截止频率距远点距离。与低通滤波器的情况一样,可认为巴特沃斯高通型滤波器比IHPF 更平滑。
高斯高通滤波器传递函数为:
220
(,)/2(,)1D u v D H u v e -=- 高通滤波器能够用高斯型低通滤波器的差构成。这些不同的滤波器有更多的参数,因此能够对滤波器的形状进行更多的控制。
四、算法设计(含程序设计流程图)
五、实验结果及分析(需要给出原始图像和处理后的图像)
实验结果分析:(1)理想的高通滤波器把半径为D0的圆内的所有频率完全衰减掉,却使圆外的所有的频率无损的通过。图像整体变得模糊,边缘和细节比较清晰。(2)巴特沃思高通滤波器和高斯高通滤波器处理后的图像中只显现边缘,边缘的强度不同,而灰度平滑的区域都变暗了。
附:程序源代码
(1)理想高通滤波器:(以D0=15为例):
I1=imread('D:\Matlab\project\低通、高通滤波实验原图.jpg');
figure(1); imshow(I1);title('原图');
>> f=double(I1); % 转换数据为双精度型
g=fft2(f); % 进行二维傅里叶变换
g=fftshift(g); % 把快速傅里叶变换的DC组件移到光谱中心[M,N]=size(g);
d0=15; %cutoff frequency以15为例
m=fix(M/2); n=fix(N/2);
for i=1:M
for j=1:N
d=sqrt((i-m)^2+(j-n)^2);
if(d<=d0)
h=0;
else h=1;
end
result(i,j)=h*g(i,j);
end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
figure(2);
imshow(J2);title('IHPF滤波(d0=15)') ;
(2)巴特沃斯高通滤波器:(以D0=15为例):
I1=imread('D:\Matlab\project\低通、高通滤波实验原图.jpg');
figure(1); imshow(I1);title('原图');
f=double(I1);
g=fft2(f);
g=fftshift(g);
[M,N]=size(g);
nn=2; % 2-grade Butterworth highpass filter
d0=15; % 15,30,80其中以15为例
m=fix(M/2); n=fix(N/2);
for i=1:M
for j=1:N
d=sqrt((i-m)^2+(j-n)^2);
h=1/(1+0.414*(d/d0)^(2*nn)); % filter transform function
%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));
figure(2);imshow(J2);title('BHPF滤波(d0=15)');
(3)高斯高通滤波器:(以D0=15为例):
I1=imread('D:\Matlab\project\低通、高通滤波实验原图.jpg'); figure(1); imshow(I1);title('原图');
f=double(I1);
g=fft2(f);
g=fftshift(g);
[M,N]=size(g);
d0=15;
m=fix(M/2); n=fix(N/2);
for i=1:M
for j=1:N
d=sqrt((i-m)^2+(j-n)^2);
h=exp(-(d.^2)./(2*(d0^2))); % gaussian filter transform
result(i,j)=(1-h)*g(i,j);
end
end
result=ifftshift(result);
J1=ifft2(result);
J2=uint8(real(J1));
>> figure(2);
>> imshow(J2);title('GHPF滤波(d0=15)');