当前位置:文档之家› 频域滤波

频域滤波

数字图像处理实验报告班级:13计算机01班*名:***学号:***********指导老师:***时间:2016-5-5实验七 图像增强—频域滤波一、 实验目的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)具有传递函数:001(,)(,)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 =-利用MATLAB 实现频域滤波的程序主程序:clc;clear allf=imread('room.tif');F=fft2(f); %对图像进行傅里叶变换%对变换后图像进行对数变换,并对其坐标进行平移,使其中心化S=fftshift(log(1+abs(F)));S=gscale(S); %将图像频谱标度在0-255的范围内 subplot 121;imshow(f);title('原始图像')subplot 122;imshow(S) %显示频谱图像title('原始图像的频谱')h=fspecial('sobel'); %产生空间‘sobel ’模板freqz2(h) %查看相应频域滤波器的图像PQ=paddedsize(size(f)); %产生滤波时所需大小的矩阵H=freqz2(h,PQ(1),PQ(2)); %产生频域中的‘sobel ’滤波器H1=ifftshift(H); %重拍数据序列,使得原点位于频率矩阵的左上角 figuresubplot 121;imshow(abs(H),[]) %以图形形式显示滤波器 title('空间滤波器')subplot 122;imshow(abs(H1),[])title('空间滤波器移位后的频谱')gs=imfilter(double(f),h); %用模板h 进行空域滤波gf=dftfilt(f,H1); %用滤波器对图像进行频域滤波subplot 221;imshow(gs,[])title('用模板h 进行空域滤波后的图像')subplot 223;imshow(gf,[])title('对图像进行频域滤波后的图像')subplot 222;imshow(abs(gs),[])title('幅度图像')subplot 224;imshow(abs(gf),[])title('幅度图像')f=imread('number.tif'); %读取图片PQ=paddedsize(size(f)); %产生滤波时所需矩阵的大小D0=0.05*PQ(1); %设定高斯高通滤波器的阈值H=hpfilter('gaussian',PQ(1),PQ(2),D0); %产生高斯高通滤波器g=dftfilt(f,H); %对图像进行滤波figuresubplot 121;imshow(f) %显示原图像title('原始图像')subplot 122;imshow(g,[]) %显示滤波后的图像title('高斯高通滤波后处理的图像')调入程序:function g = dftfilt(f, H1)F = fft2(f, size(H1, 1), size(H1, 2));F=F(:,:,1);g = real(ifft2(H1.*F));g = g(1:size(f, 1), 1:size(f, 2));function g = gscale(f, varargin)if length(varargin) == 0 % If only one argument it must be f.method = 'full8';elsemethod = varargin{1};endif strcmp(class(f), 'double') & (max(f(:)) > 1 | min(f(:)) < 0)f = mat2gray(f);end% Perform the specified scaling.switch methodcase'full8'g = im2uint8(mat2gray(double(f)));case'full16'g = im2uint16(mat2gray(double(f)));case'minmax'low = varargin{2}; high = varargin{3};if low > 1 | low < 0 | high > 1 | high < 0error('Parameters low and high must be in the range [0, 1].')endif strcmp(class(f), 'double')low_in = min(f(:));high_in = max(f(:));elseif strcmp(class(f), 'uint8')low_in = double(min(f(:)))./255;high_in = double(max(f(:)))./255;elseif strcmp(class(f), 'uint16')low_in = double(min(f(:)))./65535;high_in = double(max(f(:)))./65535;end% imadjust automatically matches the class of the input.g = imadjust(f, [low_in high_in], [low high]);otherwiseerror('Unknown method.')endfunction H = hpfilter(type, M, N, D0, n)if nargin == 4n = 1; % Default value of n.end% Generate highpass filter.Hlp =lpfilter(type, M, N, D0, n);H = 1 - Hlp;function H = lpfilter(type, M, N, D0, n)%LPFILTER Computes frequency domain lowpass filters. % computing the required distances.[U, V] = dftuv(M, N);% Compute the distances D(U, V).D = sqrt(U.^2 + V.^2);% Begin filter computations.switch typecase'ideal'H = double(D <= D0);case'btw'if nargin == 4n = 1;endH = 1./(1 + (D./D0).^(2*n));case'gaussian'H = exp(-(D.^2)./(2*(D0^2)));otherwiseerror('Unknown filter type.')endfunction PQ = paddedsize(AB, CD, PARAM)if nargin == 1PQ = 2*AB;elseif nargin == 2 & ~ischar(CD)PQ = AB + CD - 1;PQ = 2 * ceil(PQ / 2);elseif nargin == 2m = max(AB); % Maximum dimension.% Find power-of-2 at least twice m.P = 2^nextpow2(2*m);PQ = [P, P];elseif nargin == 3m = max([AB CD]); % Maximum dimension.P = 2^nextpow2(2*m);PQ = [P, P];elseerror('Wrong number of inputs.')end三、实验步骤:1.调入并显示所需的图片;2.利用MA TLAB提供的低通滤波器实现图像信号的滤波运算,并与空间滤波进行比较。

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

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

四、实验仪器1.计算机;2.MA TLAB程序;3.移动式存储器(软盘、U盘等)。

4.记录用的笔、纸。

五、实验报告内容1.叙述实验过程;(1)首先把原始图像保存为tif格式(2)打开matlab,调入并显示图像,创建工程文件(3)创建理想滤波器(4)调入函数实现2.提交实验的原始图像和结果图像。

原始图像:room.tif number.tif 实验时间2016年5月5日星期四六、实验结果分析1.原始图像room.tif灰度级2原始图像number.tif灰度级:两张图像均是146x146x3的数据大小。

相关主题