- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字图像处理实验4图象处理中的正交变换
实验4 图象处理中的正交变换
——频域处理
一.实验目的:
1.掌握二维快速傅里叶变换(FFT)的实现,对频谱图像可视化操作。
2.了解频域滤波的内容,学会如何在频域中直接生成滤波器,包括平滑频域滤波器——低通滤波器、锐化频域滤波器——高通滤波器,并利用生成的滤波器对输入图像进行频域处理。
3.掌握绘制三维可视化滤波器图形的方法。
二.实验内容:
1.实现二维快速傅里叶变换,以图像形式显示傅里叶频谱。
2.利用已给出的自定义的M函数,建立频域滤波器的传递函数H(u, v)
3.绘制滤波器传递函数H(u, v)三维图形,并以图像形式显示滤波器。
4.对输入图像进行频域滤波处理。
三.实验原理:
1.快速傅里叶变换FFT的实现
一个大小为M×N的图像矩阵f的快速傅里叶变换FFT可以通过MATLAB函数fft2获得,其简单语法:
F = fft2(f)
该函数返回一个大小仍为M×N的傅里叶变换,数据排列如图4.2(a)所示;即数据的原点在左上角,而四个四分之一周期交汇于频率矩形的中心。
傅里叶频谱可以使用函数abs来获得,语法为:
S = abs(F)
该函数计算数组的每一个元素的幅度,也就是实部和虚部平方和的平方根,即若某个元素为F = a +bj,则。
通过显示频谱的图像进行可视化分析是频域处理的一个重要方面。例如,对图4.3(a)所示的图像f (image.bmp)我们计算它的傅里叶变换并显示其频谱:
F = fft(f)
S = abs(F)
imshow(S, [ ])
图4.3(b)显示了结果,图像四个角上的亮点就是四个四分之一周期的中心点。
函数fftshift将变换的原点移动到频率矩形的中心,语法为:
Fc = fftshift(F)
F是用fft2得到的傅里叶变换,即图4.2(a),而Fc是已居中的变换,即图4.2(b)。键入命令:
Fc = fftshift(F)
Sc = abs(Fc)
figure, imshow(Sc, [ ])
将产生图4.3(c)所示的图像,居中后的结果在该图像中是很明显的。
虽然该移动像我们期望的那样完成了,但该频谱中Sc值的动态范围很大(0到204000)与8比特显示相比要大的多,使用对数变换来处理,命令:
ScL = log(1 + Sc)
figure, imshow(ScL, [ ])
产生如图4.3(d)所示的结果。
2.在频率域中直接生成滤波器
低通滤波器传递函数Hlp(u, v):
理想低通滤波器:
n阶巴特沃兹低通滤波器:
高斯低通滤波器:
高通滤波器传递函数Hhp(u, v):
Hhp(u, v) = 1 - Hlp(u, v)
直接利用自定义的函数lpfilter(type, M, N, D0, n),建立所有低通滤波器的传递函数,语法为:
Hlp = lpfilter(type, M, N, D0, n)
参数type为’ideal’、’btw’、’gaussian’,分别表示理想低通滤波器、n阶巴特沃兹低通滤波器(通常建立的是二阶,即n = 2)、高斯低通滤波器。M, N表示滤波器大小,n仅在建立巴特沃兹滤波器中使用。
例:
Hlp = lpfilter(‘gaussian’, 500, 500, 50)
%建立了一个高斯低通滤波器,截止频率是50
类似地,有建立所有高通滤波器的传递函数,语法为:
Hhp = hpfilter(type, M, N, D0, n)
添加函数库文件夹matlab_function到MATLAB环境中,方法是:
File——Set Path——Add Folder——OK——Save——关闭对话框。这样,我们就可以使用函数库所提供的各种自定义的matlab函数。建立低通滤波器的函数lpfilter,建立高通滤波器的函数hpfilter,都来自这个函数库。
3.绘制滤波器传递函数H(u, v)三维图形,并以图像形式显示滤波器
对二维滤波器函数的传递函数进行可视化,使用函数mesh,语法为:
mesh(H) %默认是彩色绘图
该函数将绘制一个x = 1:M和y = 1:N的线框图,其中[M N] = size(H)。若M和N很大,则线框图的密度会大到不可接受,将以连续曲面显示。在这种情况下,我们可以使用语法:
mesh(H(1:k:end, 1:k:end))
经验表明,沿每个轴40到60个等分可在外观和分辨率上有较好的平衡。
例:
Hlpg = lpfilter(‘gaussi
文档评论(0)