第四频域处理,第五章图像复原解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
原点移动到频率矩形的中心
>> S=gscale(S); [0,255] 注:以上为求图像f的傅里叶频谱 %将输出图像映射到一个特定的范围,此处使用默认值
wenku.baidu.com>> h=fspecial('sobel')'
h = 1 2 1 0 0 0 -1 -2 -1
Page 11
注:以上为输出一个3*3的sobel线性空间滤波器,近似于水平的梯度。
Page 9
频域滤波
滤波过程总结:
① 预处理阶段包括确定图像大小、获得填充参数和生成一个滤波函数等 ② 后处理阶包括计算结果的实部,修剪图像,以及将图像类型的准换。
Page 10
从空间滤波器获得频域滤波器
例:空间域滤波与频域滤波的比较。
>> f=imread('Fig0409(a)(bld).tif'); >> F=fft2(f); >> S=fftshift(log(1+abs(F))); %求频谱,压缩频谱的动态范围,并把变换的
Page 4
傅里叶变换
实验结果:
Page 5
频域滤波
卷积定理
f ( x, y)* h( x, y) F (u, v) H (u, v)
上式说明空间域卷积可通过F (u, v) H (u, v) 的乘积 进行反傅立叶变换得到
f ( x, y)h( x, y) F (u, v)* H (u, v)
第四章 频域处理
目录
1
2 3 4 5
傅里叶变换 频域滤波 从空间滤波器获得频域滤波器 在频域中直接生成滤波器 锐化频域滤波器
Page 1
傅里叶变换
二维离散傅里叶变换
图像尺寸为M×N的函数 f ( x, y)的DFT为
F (u, v) f ( x, y)ei 2 (ux / M vy / N )
Page 7
频域处理
实验结果:
Page 8
频域滤波
DFT滤波的基本步骤
使用函数paddedsize获得填充参数: PQ=paddedsize(size(f)) 得到使用填充的傅里叶变换: F=fft2(f,PQ(1),PQ(2)) 生成大小为PQ(1)*PQ(2)的滤波函数H,同时进行中心变换。 将变换乘以滤波函数: G=H.*F 获得G的傅里叶逆变换的实部: g=real(ifft2(G)) 将图像修改为原始大小: g=g(1:size(f,1),1:size(f,2))
>> gf=dftfilt(f,H1); %该函数可接受输入图像和一个滤波函数,可处理所有的
滤波细节,并输出经滤波和剪切的图像。
x 0 y 0 M 1 N 1
给定F (u, v) 可通过反DFT得到 f ( x, y)
1 f ( x, y) MN
M 1 N 1 u 0 v 0
F (u, v)e
i 2 ( ux / M vy / N )
注:u和v是频率分量,x和y是空间图像变量
Page 2
傅里叶变换
二维DFT极坐标表示
F (u , v) F (u , v) e
幅度式频率谱:
i ( u , v )
F (u, v ) R(u, v)2 I (u, v)2
相角式相位谱
I (u, v) (u, v) arctan t R ( u , v )
2
功率谱:
P(u, v) F (U ,V ) R 2 (u, v) I 2 (u, v)
Page 3
傅里叶变换
例:计算图像的傅里叶变换并显示频谱
>> >> >> >> >> >> >> >> >> f=imread('Fig0403(a)(image).tif'); subplot(2,2,1),imshow(f) F=fft2(f);%计算傅立叶变换 S=abs(F);%获得频谱 subplot(2,2,2),imshow(S,[ ]) Fc=fftshift(F);%将变换的原点移动到频率矩形的中心 subplot(2,2,3),imshow(abs(Fc),[ ]) Sc=log(1+abs(Fc));%压缩动态范围以增强灰度级细节 subplot(2,2,4),imshow(Sc,[ ])
说明空间域乘法可通过频率域的卷积获得 上式两个公式为两个函数逐元素相乘的乘法
Page 6
频域滤波
例:使用lpfilter来生成高斯低通滤波器。
>> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> f=imread('Fig0405(a)(square_original).tif'); [M,N]=size(f); sig=10; %指定高斯低通滤波器的标准偏差 H=lpfilter(‘gaussian’,M,N,sig); %高斯低通滤波器的生成 F=fft2(f); %计算傅里叶变换 G=H.*F; g=real(ifft2(G)); %提取逆变换后结果的实部, subplot(1,3,1),imshow(f) subplot(1,3,2),imshow(g,[ ]) PQ=paddedsize(size(f)); %对输入图像进行填充 Fp=fft2(f,PQ(1),PQ(2)); %计算经填充之后的傅里叶变换 Hp=lpfilter('gaussian',PQ(1),PQ(2),2*sig); Gp=Hp.*Fp; gp=real(ifft2(Gp)); gpc=gp(1:size(f,1),1:size(f,2)); %将图像剪裁为原始图像大小 subplot(1,3,3),imshow(gpc,[ ])
从空间滤波器获得频域滤波器
>> freqz2(h) %计算滤波器的频率响应,即为空间滤波器相对应的频域滤波器。 %线性空间滤波滤波之前先把图像转化为double >> gs=imfilter(double(f),h); 类,防止数据的丢失。
方法二:频域滤波 >> PQ=paddedsize(size(f)); >> H=freqz2(h,PQ(1),PQ(2)); %计算滤波器的频率响应, >> H1=ifftshift(H); %重排数据序列,使得原点位于频率矩阵的左上角