遥感数字图像处理matlab频域处理.docx

上传人:b****6 文档编号:5696593 上传时间:2022-12-31 格式:DOCX 页数:22 大小:804.78KB
下载 相关 举报
遥感数字图像处理matlab频域处理.docx_第1页
第1页 / 共22页
遥感数字图像处理matlab频域处理.docx_第2页
第2页 / 共22页
遥感数字图像处理matlab频域处理.docx_第3页
第3页 / 共22页
遥感数字图像处理matlab频域处理.docx_第4页
第4页 / 共22页
遥感数字图像处理matlab频域处理.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

遥感数字图像处理matlab频域处理.docx

《遥感数字图像处理matlab频域处理.docx》由会员分享,可在线阅读,更多相关《遥感数字图像处理matlab频域处理.docx(22页珍藏版)》请在冰豆网上搜索。

遥感数字图像处理matlab频域处理.docx

遥感数字图像处理matlab频域处理

目录

实验五:

频域图像增强2

一、实验目的2

二、实验内容2

1.傅立叶变换2

①实验代码2

②实验图像3

③算法分析3

2.图像填充4

①实验代码4

②实验图像5

③算法分析6

3.频域中滤波6

①实验代码6

②实验图像6

③算法分析7

4.滤波比较7

①实验代码8

②实验图像8

③算法分析10

5.低通滤波10

①实验代码10

②实验图像11

③算法分析14

6.高通滤波15

①实验代码15

②实验图像17

③算法分析19

三、实验总结20

实验五:

频域图像增强

2024-蓝建航-地理科学

一、实验目的

1、理解傅立叶变换的基本原理,掌握频域的频谱,相位和能量谱等基本概念;

2、掌握傅立叶变换的主要性质,掌握傅立叶变换进行图像填充的必要性和方法,对比填充

前后进行图像傅立叶变换的差别(折叠误差);

3、掌握不同滤波器的特征和频域进行图像滤波的基本步骤;

4、掌握用MATLAB实现低通滤波,高通滤波和高频增强滤波,比较和分析滤波结果(模

糊、纹理和振铃等);

二、实验内容

1.傅立叶变换

对一幅图像进行傅立叶变换,求其频谱和相位谱,并通过傅立叶反变换重构图像。

本例

中主要熟悉MATLAB的几个傅立叶变换函数:

fft2,fftshift,ifft2,ifftshift

①实验代码

{

closeall;

f=imread('C:

\实验五\DIPLab5_Data\pea_red.jpg');

figure,imshow(f,[]);

F=fft2(double(f));%傅立叶变换到频域

S=log(1+abs(F));%对输出的傅立叶频谱的原点不调整

figure,imshow(S,[]);

Fc=fftshift(F);%对输出的傅立叶频谱的原点进行调整(平移)

Sc=log(1+abs(Fc));%求傅立叶谱并进行对数拉伸变换

figure,imshow(Sc,[]);

ff=real(ifft2(F));%傅立叶反变换重构图像,取实部

figure,imshow(ff,[]);%

figure,imshow(angle(F),[])%求相位谱

figure,imshow(gscale(uint8(abs(double(f)-double(ff)))));%变换前后两图像的差异

}

②实验图像

原孔雀图像

傅立叶频谱的原点不调整

傅立叶频谱的原点进行调整

傅立叶反变换重构图像,取实部

相位谱

变换前后两图像的差异

③算法分析

图像通过傅立叶变换后的图像原点不在中心,须通过原点调整,其实部不能直接看不出与原图的关系。

观察可知反变换后的图像与原图像无差别(相减为0),

2.图像填充

掌握折叠误差产生的原因及处理方法,以矩形函数图像为例,对比图像填充前后,进行傅立叶变换的差异。

①实验代码

{

closeall;

%没填充的滤波:

f=imread('C:

\实验五\DIPLab5_Data\square.tif');

[M,N]=size(f);

imshow(f,[])

impixelinfo;

F=fft2(double(f));

Fc=log(1+abs(fftshift(F)));

figure,imshow(Fc);

sig=5;

H=lpfilter('gaussian',M,N,sig);

G=H.*F;

g=real(ifft2(G));

g=gscale(g);

figure,imshow(g,[]);

%填充后的频域滤波

PQ=paddedsize(size(f));

Fp=fft2(double(f),PQ

(1),PQ

(2));%计算FFT

Hp=lpfilter('gaussian',PQ

(1),PQ

(2),2*sig);

Gp=Hp.*Fp;

gp=real(ifft2(Gp));

gp=gscale(gp);

figure,imshow(gp,[]);

gpc=gp(1:

size(f,1),1:

size(f,2));

figure,imshow(gpc,[]);

%填充后的空域滤波

h=fspecial('gaussian',25,10);

gs=imfilter(f,h);

figure,imshow(gs,[]);

}

②实验图像

原始数据

傅立叶变换

不填充的滤波

使用填充后的完整图像

裁剪图像

填充后的空域滤波

③算法分析

原黑白相间图像的傅立叶是一条直线,使用不填充的高斯低通滤波器后发现图像有些模糊,但垂直边缘并不模糊,其原因是DFT计算中暗含了周期性。

再观察使用填充后的完整图像,因为填充的缘故,目标图像是左上角部分,其余部分的黑色是由于使用填充的缘故。

对比频域滤波及空域滤波,设置相应的参数变换后可使两者的作用相同。

在一定范围内频域滤波与空域滤波可能通用。

3.频域中滤波

①实验代码

{

closeall;

f=imread('C:

\实验五\DIPLab5_Data\pea_red.jpg');

PQ=paddedsize(size(f));%填充

Fp=fft2(double(f),PQ

(1),PQ

(2));%傅立叶变换

Ff=fftshift(Fp);%图像进行原点调整

Fs=log(1+abs(Ff));

figure,imshow(Fs,[]);%对数拉伸并显示

sig=30;%定义滤波器的大小

Hp=lpfilter('gaussian',PQ

(1),PQ

(2),2*sig);%产生高斯低通滤波器

Hf=fftshift(Hp);%滤波器进行原点调整

Hs=log(1+abs(Hf));figure,imshow(Hs,[]);%滤波器对数拉伸并显示

Gp=Hf.*Ff;%频域滤波

Gs=log(1+abs(Gp));

figure,imshow(Gs,[]);

gg=real(ifft2(ifftshift(Gp)));%原点调整且反变换重构图像

figure,imshow(gg,[])

gx=gg(1:

size(f,1),1:

size(f,2));%裁剪图像至原图像大小

figure,imshow(gx,[]);

}

②实验图像

原始图像

傅立叶变换

滤波器

频域滤波

重构图像

裁剪后图像

③算法分析

本例利用高斯低通滤波来说明频域滤波的工作原理。

包括以下六个步骤:

①用

乘以输入图像来进行中心变换;②计算图像的DFT,即F(u,v);③用滤波器函数H(u,v)乘以F(u,v);④计算③中结果的反DFT;⑤得到④中结果的实部;⑥用

乘以⑤中结果,得滤波后图像。

在MatLab中可通过相应的函数实现。

4.滤波比较

空域滤波与频域滤波的比较(以sobel算子为例).

①实验代码

{

closeall;

f=imread('C:

\实验五\DIPLab5_Data\pea_red.jpg');%读一幅图像

figure,imshow(f,[]);

F=fft2(double(f));%傅立叶变换

S=fftshift(log(1+abs(F)));%对数增强且中心化

G=gscale(S);imshow(S,[])%调整显示

h=fspecial('sobel');%使用函数fspecial来生成空域滤波器

figure,freqz2(h);%查看相应频域滤波器的图形

PQ=paddedsize(size(f));%获得输入图像填充后的大小

H=freqz2(h,PQ

(1),PQ

(2));%获得同样大小的频域滤波器

figure,imshow(abs(H),[]);

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

figure,imshow(abs(H1),[])

gs=imfilter(double(f),h);%空域滤波,默认边界填充为0

figure,imshow(gs,[])

gf=dftfilt(double(f),H1);%频域滤波,周期性扩展

figure,imshow(gf,[]);

d=abs(gs-gf);%求差值

figure,imshow(d,[]);

max(d(:

))

min(d(:

))%显示最大最小值。

}

②实验图像

原始图像

傅立叶变换图像

频域滤波器的图形

同样大小的频域滤波器

重排数据,使原点位于频率矩形的左上

空域滤波,默认边界填充为0

频域滤波,周期性扩展

显示最大最小值

③算法分析

频域和空域滤波器都能实现对象边界的提取,但两者并不是完全相同的,观察最后一张图可以看出,相差呈现出条纹形状。

5.低通滤波

①实验代码

生成三种类型的低通频域滤波器(理想、巴特沃斯和高斯滤波器)

{

closeall;

%产生三种低通滤波器,且中心化处理

Li=fftshift(lpfilter('ideal',500,500,50));

Lb=fftshift(lpfilter('btw',500,500,50,2));

Lg=fftshift(lpfilter('gaussian',500,500,50));

%画剖面图

plot(Li(250,:

));

Holdon;

plot(Lb(250,:

));

plot(Lg(250,:

));

%显示图像

figure,imshow(Li,[])

figure,imshow(Lb,[])

figure,imshow(Lg,[])

}

在频域中直接滤波

{

closeall;

f=imread('C:

\实验五\DIPLab5_Data\pea_red.jpg');%读一幅图像

figure,imshow(f,[]);

PQ=paddedsize(size(f));%填充

%产生不同截止频率的理想滤波器

Hi5=lpfilter('ideal',PQ

(1),PQ

(2),5);

Hi15=lpfilter('ideal',PQ

(1),PQ

(2),15);

Hi30=lpfilter('ideal',PQ

(1),PQ

(2),30);

Hi80=lpfilter('ideal',PQ

(1),PQ

(2),80);

Hi230=lpfilter('ideal',PQ

(1),PQ

(2),230);

%频域滤波

gi5=dftfilt(double(f),Hi5);figure,imshow(gi5,[])

gi15=dftfilt(double(f),Hi15);figure,imshow(gi15,[])

gi30=dftfilt(double(f),Hi30);figure,imshow(gi30,[])

gi80=dftfilt(double(f),Hi80);figure,imshow(gi80,[])

gi230=dftfilt(double(f),Hi230);figure,imshow(gi230,[])

%产生2阶不同截止频率的巴特沃斯滤波器

Hb5=lpfilter('btw',PQ

(1),PQ

(2),5,2);

Hb15=lpfilter('btw',PQ

(1),PQ

(2),15,2);

Hb30=lpfilter('btw',PQ

(1),PQ

(2),30,2);

Hb80=lpfilter('btw',PQ

(1),PQ

(2),80,2);

Hb230=lpfilter('btw',PQ

(1),PQ

(2),230,2);

%频域滤波

gb5=dftfilt(double(f),Hb5);figure,imshow(gb5,[])

gb15=dftfilt(double(f),Hb15);figure,imshow(gb15,[])

gb30=dftfilt(double(f),Hb30);figure,imshow(gb30,[])

gb80=dftfilt(double(f),Hb80);figure,imshow(gb80,[])

gb230=dftfilt(double(f),Hb230);figure,imshow(gb230,[])

%产生不同截止频率的高斯滤波器

Hg5=lpfilter('gaussian',PQ

(1),PQ

(2),5);

Hg15=lpfilter('gaussian',PQ

(1),PQ

(2),15);

Hg30=lpfilter('gaussian',PQ

(1),PQ

(2),30);

Hg80=lpfilter('gaussian',PQ

(1),PQ

(2),80);

Hg230=lpfilter('gaussian',PQ

(1),PQ

(2),230);

%频域滤波

gg5=dftfilt(double(f),Hg5);figure,imshow(gg5,[])

gg15=dftfilt(double(f),Hg15);figure,imshow(gg15,[])

gg30=dftfilt(double(f),Hg30);figure,imshow(gg30,[])

gg80=dftfilt(double(f),Hg80);figure,imshow(gg80,[])

gg230=dftfilt(double(f),Hg230);figure,imshow(gg230,[])

}

②实验图像

剖面图

理想低通

巴特沃思低通

高斯低通

lpfilter('ideal',PQ

(1),PQ

(2),5/15/30/80/230)/原图

lpfilter(''btw',PQ

(1),PQ

(2),5/15/30/80/230)/原图

lpfilter('gaussian',PQ

(1),PQ

(2),5/15/30/80/230)/原图

③算法分析

本例中对理想、巴特沃思、高斯三个低通滤波器做了对比,并分析不同的截止频率对频域滤波的影响。

截止频率越小,滤去的频率信息越多,图像越平滑但更加模糊。

滤波器的性能对比如下:

滤波器

噪声平滑效果

图像模糊程度

是否有振铃

理想低通滤波器

最好

最严重

严重

巴特沃思低通滤波器

阶数越高振铃越大

高斯低通滤波器

一般

较轻

无振铃

理想低通滤波器的变换函数为

巴特沃思低通滤波器的变换函数为

高斯低通滤波器的变换函数为

出现以上情况的原因可以由剖面图来解释,理想低通滤波在截止频率时直接从1变为0,而巴特沃思与高斯低通是渐变的,由此产生不同的平滑效果与模糊程度,及振铃的影响。

在实际选择低通滤波的种类及截止频率大小的时候,要综合考虑对平滑效果与图像模糊程度的取舍。

6.高通滤波

①实验代码

{

closeall;

Hi=fftshift(hpfilter('ideal',500,500,50));

Hb=fftshift(hpfilter('btw',500,500,50,2));

Hg=fftshift(hpfilter('gaussian',500,500,50));

%画剖面图,标注不同的滤波器类型

plot(Hi(250,:

));

Holdon;

plot(Hb(250,:

));

plot(Hg(250,:

));

%显示图像

figure,imshow(Hi,[])

figure,imshow(Hb,[])

figure,imshow(Hg,[])

%查看在频域中的三维形状

mesh(Hi(1:

10:

500,1:

10:

500));

axis([05005001])

colormap([000])

axisoff;gridoff

figure,mesh(Hb(1:

10:

500,1:

10:

500));

axis([05005001])

colormap([000])

axisoff;gridoff

figure,mesh(Hg(1:

10:

500,1:

10:

500));

axis([05005001])

colormap([000])

axisoff;gridoff

}

{

%高斯高通滤波:

closeall;

f=imread('C:

\实验五\DIPLab5_Data\pea_red.jpg');%读一幅图像

figure,imshow(f,[]);

PQ=paddedsize(size(f));%填充

%产生不同截止频率的高斯高通滤波器

Hg5=hpfilter('gaussian',PQ

(1),PQ

(2),5);

Hg15=hpfilter('gaussian',PQ

(1),PQ

(2),15);

Hg30=hpfilter('gaussian',PQ

(1),PQ

(2),30);

Hg80=hpfilter('gaussian',PQ

(1),PQ

(2),80);

Hg230=hpfilter('gaussian',PQ

(1),PQ

(2),230);

%频域滤波

gg5=dftfilt(double(f),Hg5);figure,imshow(gg5,[])

gg15=dftfilt(double(f),Hg15);figure,imshow(gg15,[])

gg30=dftfilt(double(f),Hg30);figure,imshow(gg30,[])

gg80=dftfilt(double(f),Hg80);figure,imshow(gg80,[])

gg230=dftfilt(double(f),Hg230);figure,imshow(gg230,[])

%高频加强滤波:

传递函数:

Hhfe(u,v)=a+bHhp(u,v)

PQ=paddedsize(size(f));%填充

D0=0.05*PQ

(1);%定义截止频率

HBW=hpfilter('btw',PQ

(1),PQ

(2),D0,2);%2阶BTW高频滤波器

gbw=dftfilt(double(f),HBW);%滤波

gbws=gscale(gbw);%灰度标定

gbwe=histeq(gbws,256);

figure,imshow(gbwe,[]);

H=0.5+2*HBW;%高频加强滤波器

ghf=dftfilt(double(f),H);%高频加强滤波

ghfs=gscale(ghf);%灰度标定

figure,imshow(ghfs,[])

ghe=histeq(ghfs,256);%直方图均衡化

figure,imshow(ghe,[])

}

②实验图像

剖面图

理想高通

巴特沃思高通

高斯高通

理想高通

巴特沃思高通

高斯高通

原图/hpfilter('gaussian',PQ

(1),PQ

(2),5/15/30/80/230)

2阶BTW高频滤波

高频加强滤波

直方图均衡化

③算法分析

本例中对高斯高通滤波器及高频加强滤波做了对比,并分析不同的截止频率对频域滤波的影响。

截止频率越大,锐化效果越好。

理想低通滤波器的变换函数为

巴特沃思低通滤波器的变换函数为

高斯低通滤波器的变换函数为

三种高通滤波器中,理想高通滤波器和理想低通滤波器一样有相同的振铃,会导致物体失真,边界加粗;巴特沃思高通滤波器相比更加平滑且振铃较;而高斯高通滤波器相比于前两个滤波器更平滑,即使是对微波物体和细条用高斯滤波器过滤也是比较清晰的。

有时用一幅图像的高频成分强调增强的作用是有益的。

在这种情况下,在高通滤波器函数前简单乘以一个常数,再增加一个偏移,以使零频率不被滤波器除掉。

这种处理称为高频加强,有如下的传递函数

在实际选择高通通滤波的种类及截止频率大小的时候,要综合考虑对目标图像的要求。

3、实验总结

所有的函数都可以用正弦或余弦乘以加权函数的积分来表示,这一情况下的公式即是傅立叶变换。

对于函数的变换还可通过傅立叶反变换来还原原始函数而不丢失任何信息。

这一重要特征可以实现图像空域变换到频率变换的转变而进行图像变换与增强。

频域滤波的基本步骤为:

输入图像→前处理→傅立叶变换→滤波函数→傅立叶反变换→后处理→增强图像

滤波函数主要包括平滑的频域滤波器(理想低通滤波器、巴特沃思低通滤波器、高斯低通滤波器)及频域锐化滤波器(理想高通滤波器、巴特沃思高通滤波器、高斯高通滤波器)。

此外还通过锐化图像与原始图像的综合处理出现钝化模板、高频提升滤波、高频加强滤波和同态滤波等技术。

绝大多数的空域滤波可以转化为频域滤波实现,但频域滤波在处理周期噪声等问题上表现出不可代替的作用。

总之,空域滤波与频域滤波是图像增强处理的两个重要部分,两种方法的灵活运用可以多种多样的图像增强。

此外,频域滤波在图像修复方面也有具体应用。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1