图像处理实验图像频域变换

  • 格式:doc
  • 大小:315.00 KB
  • 文档页数:6

下载文档原格式

  / 6
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京信息工程大学 实验(实习)报告 实验名称 实验五 图像频域增强 实验日期 得分 指导教师 徐旦华 院 计算机与软件学院 专业 计算机科学与技术 年级 2012 班次 3 姓名 宗仰 学号 20121308097

一、 实验目的

1.掌握怎样利用傅立叶变换进行频域滤波

2.掌握频域滤波的概念及方法

3.熟练掌握频域空间的各类滤波器

4.利用MATLAB 程序进行频域滤波

二、 实验原理及知识点

频域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和高通滤波器。频域低通过滤的基本思想:

G(u,v)=F(u,v)H(u,v)

F(u,v)是需要钝化图像的傅立叶变换形式,H(u,v)是选取的一个低通过滤器变换函数,G(u,v)是通过H(u,v)减少F(u,v)的高频部分来得到的结果,运用傅立叶逆变换得到钝化后的图像。

理想地低通滤波器(ILPF)具有传递函数:

00

1(,)(,)0(,)ifD u v D H u v ifD u v D ≤⎧=⎨>⎩ 其中,0D 为指定的非负数,(,)D u v 为(u,v)到滤波器的中心的距离。0(,)D u v D =的点的轨迹为一个圆。

n 阶巴特沃兹低通滤波器(BLPF)(在距离原点0D 处出现截至频率)的传递函数为

201

(,)1[(,)]n H u v D u v D =+

与理想地通滤波器不同的是,巴特沃兹率通滤波器的传递函数并不是在0D 处突然不连续。 高斯低通滤波器(GLPF)的传递函数为

222),(),(σv u D e

v u H =

其中,σ为标准差。 相应的高通滤波器也包括:理想高通滤波器、n 阶巴特沃兹高通滤波器、高斯高通滤波器。给定一个低通滤波器的传递函数(,)lp H u v ,通过使用如下的简单关系,可以获得相应高通滤波器的传递函数:1(,)hp lp H H u v =-

三、实验内容

1. 调入并显示所需的图片;

2.利用MA TLAB提供的低通滤波器实现图像信号的滤波运算,并与空间滤波进行比较。

3.利用MATLAB提供的高通滤波器对图像进行处理。

4.记录和整理实验报告。

四、实验步骤

创建脚本一,输入以下代码:

function g = dftfilt(f,H)

F = fft2(f, size(H,1), size(H,2));

g = real(ifft2(H.*F));

g = g(1:size(f,1),1:size(f,2));

创建脚本二,输入以下代码:

function H = hpfilter(M, N, D0)

u = 0:(M - 1);

v = 0:(N - 1);

idx = find(u > M/2);

u(idx) = u(idx) - M;

idy = find(v > N/2);

v(idy) = v(idy) - N;

[V, U] = meshgrid(v, u);

D = sqrt(U.^2 + V.^2);

H = 1-exp(-(D.^2)./(2*(D0^2)));

再输入以下代码:

close all

f=imread('4.jpg');

F=fft2(f); %对图像进行傅立叶变换

suptitle('20121308097频域显示');

%对变换后图像进行对数变化,并对其坐标平移,使其中心化

subplot(1,2,1),imshow(f),title('原图')

S=fftshift(abs(F));

S=(S-min(min(S)))/(max(max(S))-min(min(S)))*255;%归一化subplot(1,2,2),imshow(S),title('频域图像') %显示频谱图像

h=fspecial('sobel'); %产生空间‘sobel’模板

figure(2),freqz2(h),title('频域滤波器图像') %查看相应频域滤波器的图像

PQ=size(f); %产生滤波时所需大小的矩阵

H=freqz2(h,PQ(1),PQ(2)); %产生频域中的‘sobel’滤波器

H1=ifftshift(H); %重排数据序列,使得原点位于频率矩阵的左上角

figure(3);

suptitle('宗仰显示滤波器');

subplot(1,2,1),imshow(abs(H),[]),title('图形显示sobel滤波器') %以图形形式显示滤波器

subplot(1,2,2),imshow(abs(H1),[]),title('重排数据序列后滤波器')

gs=imfilter(double(f),h); %用模板h进行空域滤波

gf=dftfilt(f,H1);%用滤波器对图像进行频域滤波

figure(4);

subplot(2,2,1),imshow(gs,[]),title('对模版空域滤波后') subplot(2,2,2),imshow(gf,[]),title('对模版频域滤波后') subplot(2,2,3),imshow(abs(gs),[]),title('对模版空域滤波后')

subplot(2,2,4),imshow(abs(gf),[]),title('对模版频域滤波后')

运行:

因为图片格式的原因重新换了图片,得出第四张图:

T=imread('rice.png'); %读取图片

PQ=size(f); %产生滤波时所需大小的矩阵

D0=0.05*PQ(1); %设定高斯高通滤波器的阈值

H=hpfilter(PQ(1),PQ(2),D0); %产生高斯高通滤波器

g=dftfilt(f,H); %对图像进行滤波

figure(5);

subplot(1,2,1),imshow(f),title('原图像') %显示原图像subplot(1,2,2),imshow(g,[]),title('滤波图像') %显示滤波后图像