数字图像处理图像变换与频域处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京信息工程大学 计算机图像处理 实验(实习)报告
实验(实习)名称 图像变换与频域处理 实验(实习)日期 得分 指导老师 系 专业 班级 姓名 学号
一、 实验目的
1.了解离散傅里叶变换的基本性质;
2.熟练掌握图像傅里叶变换的方法及应用;
3.通过实验了解二维频谱的分布特点;
4.熟悉图像频域处理的意义和手段;
5.通过本实验掌握利用MATLAB 的工具箱实现数字图像的频域处理。
二、 实验原理
(一)傅立叶变换
傅立叶变换是数字图像处理中应用最广的一种变换,其中图像增强、图像复原 和图像分析与描述等,每一类处理方法都要用到图像变换,尤其是图像的傅立
叶变换。
离散傅立叶(Fourier )变换的定义:
二维离散傅立叶变换(DFT )为:
逆变换为:
式中,
在DFT 变换对中, 称为离散信号 的频谱,而 称为幅度谱, 为相位角,功率谱为频谱的平方,它们之间的关系为:
图像的傅立叶变换有快速算法。
(二)图像的频域增强
常用的图像增强技术可分为基于空域和基于变换域的两类方法。最常用的变换域是频域空间。在频域空间,图像的信息表现为不同频率分量的组合。如果能让某个范围内的分量或某些频率的分量受到抑制而让其他分量不受影响,就可以改变输出图像的频率分布,达到不同的增强目的。
频域增强的工作流程:
频域空间的增强方法对应的三个步骤:
(1) 将图像f(x,y)从图像空间转换到频域空间,得到F(u,v); (2) 在频域空间中通过不同的滤波函数H(u,v)对图像进行不同的增强,得到G(u,v)(注:傅立叶变换
滤波器 傅立叶反变换 ),(v u H ),(v u F ),(v u G )
,(y x g ),(y x f ∑∑-=-=-=101
0)(2exp ),(1),(M x N y N vy M ux j y x f MN v u F π∑∑
-=-=+=101
0)(2ex p ),(1),(M u N v N vy M ux j v u F MN y x f π}1,,1,0{,-∈M x u }1,,1,0{,-∈N y v ),(v u F ),(y x f ),(v u F )
,(v u ϕ),(),()],(exp[),(),(v u jI v u R v u j v u F v u F +==ϕ
不同的滤波器滤除的频率和保留的频率不同,因而可获得不同的增强效果);
(3)将增强后的图像再从频域空间转换到图像空间,得到图像g(x,y)。
1.低通滤波
图像中的边缘和噪声都对应图像傅立叶变换中的高频部分,如要在频域中消弱其影响,设法减弱这部分频率的分量。选择合适的H(u,v)以得到消弱F(u,v)高频分量的G(u,v)。所以低通滤波可以除去或消弱噪声的影响并模糊边缘轮廓,与空域中的平滑方法类似。
典型的低通滤波器:(见教材)
–理想低通滤波器
–Butterworth低通滤波器
–指数低通滤波器
–梯形低通滤波器
2.高通滤波
图像的边缘、细节主要位于高频部分,而图像的模糊是由于高频成分比较弱产生的。频率域锐化就是为了消除模糊,突出边缘。因此采用高通滤波器让高频成分通过,使低频成分削弱,再经逆傅立叶变换得到边缘锐化的图像。
常用的高通滤波器:(见教材)
–理想高通滤波器
–Butterworth高通滤波器
–指数高通滤波器
–梯形高通滤波器
三、实验内容与步骤
1. 产生右图所示亮块图像f1(x,y)(128×128 大小,暗处=0,亮处=255),对其进行FFT:(1)同屏显示原图f1和FFT(f1)的幅度谱图;
(2)若令f2(x,y) = (-1)x+y f1(x,y),重复以上过程,比较二者幅度谱的异同,简述理由;(3)若将f2(x,y)顺时针旋转45度得到f3(x,y),试显示FFT(f3)的幅度谱,并与FFT(f2)的幅度谱进行比较。
2. 对数字图像GIRL_8G.bmp 进行频域的理想低通、高通滤波,并观察不同滤波半径
(0.0~1.0) 条件下滤波图像的变化;同屏显示原图、幅度谱图和低通、高通滤波的结果图。
本实验用到的MATLAB的函数:
1. 函数:imrotate
功能:旋转图像。
语法:B = imrotate(A,angle,method)
B = imrotate(A,angle,method,'crop')
举例:
I = imread('d:\matlab work\pic\numeral_1.jpg');
J = imrotate(I,60,'bilinear','crop'); %双线性插值法旋转图像60度,并剪切图像和原图像大小一致
subplot(121), imshow(I); title('原图像');
subplot(122),imshow(J); title('旋转图像60度,并剪切图像');
2.MA TLAB实现数字图像傅立叶变换的程序示例:
[I,map]=imread(‘原图像名’); %读入原图像文件
figure(1); imshow(I, map); %设定窗口,显示原图像
colorbar; % colorbar 函数用显示图像的颜色条
J = fft2(I); % fft2 函数用于数字图像的二维傅立叶变换
K = fftshift(J); % 一般在计算图形函数的傅立叶变换时,坐标原点在函数图形的中心位置处,而计算机在对图像执行傅立叶变换时是以图像的左上角为坐标原点。所以使用函数fftshift进行修正,使变换后的直流分量位于图形的中心
RR=real(K); %取傅立叶变换的实部
II=imag(K); %取傅立叶变换的虚部
A=sqrt(RR.^2+II.^2); %计算频谱幅值
A=(A-min(min(A)))/ (max(max(A))-min(min(A)))*225; %归一化
figure(2); imshow(A,[]); %设定窗口,显示原图像的频谱
colorbar;
N=ifft2(J)/255; % ifft2 函数用于数字图像的二维傅立叶反变换
figure(3); imshow(N,[]);
colorbar;
3.程序示例:低通滤波-平滑
[I,map]=imread(‘原图像名’); %读入原图像文件
figure(1); imshow(I, map); %设定窗口,显示原图像
J1=imnoise(I,'salt & pepper'); % 叠加椒盐噪声
figure(2); imshow(J1, map);
F = double(J1); % 数据类型转换,MA TLAB不支持图像的无符号整型的计算
G = fft2(f); % 傅立叶变换
G= fftshift(G);
[M,N]=size(G);
nn = 2; % 二阶巴特沃斯(Butterworth)低通滤波器
d0 = 50;
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)); % 计算低通滤波器传递函数
result(i,j) = h * G(i,j);
end;
end;
result = ifftshift(result);