实验四 图像频域高通滤波

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)');

相关文档
最新文档