电信.docx
《电信.docx》由会员分享,可在线阅读,更多相关《电信.docx(11页珍藏版)》请在冰豆网上搜索。
电信
题目12:
Fourier描述子及其逆变换边界重构的程序设计
初始条件:
(1)提供实验室机房及其matlab软件;
(2)数字图像处理的基本理论学习。
要求完成的主要任务(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求):
(1)选择并读取一幅只含有字母E的二值图像,利用matlab设计程序;
(2)获取该二值图像的边界,显示边界图;
(3)对提取的边界计算其Fourier描述子;
(4)用全部Fourier描述子重构图像的边界,显示边界图;
(5)只采用127项Fourier描述子重构图像的边界,显示边界图;
(6)对结果进行分析;
(7)要求阅读相关参考文献不少于5篇;
(8)根据课程设计有关规范,按时、独立完成课程设计说明书。
时间安排:
(1)布置课程设计任务,查阅资料,确定方案1.5天;
(2)进行编程设计、调试2天;
(3)完成课程设计报告书、答辩1.5天;
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
边界描述主要借助区域的外部特征即区域的边界来描述区域。
当一个目标物区域边界上的点已经被确定时,就可以利用这些边界点来区别不同区域的形状。
这样既可以节省储存信息,又可以准确的确定物体。
傅里叶描述子就是一种描述闭合边界的方法,它是通过一系列傅里叶系数来表示闭合曲线的形状特征的,仅仅适用于单封闭曲线,而不能描述复合封闭曲线。
采用傅里叶描述子的优点是将二维的问题转化为一维的问题。
关键字:
傅里叶;描述子;边界重构;MATLAB
目录
1利用傅里叶描述子进行边界重构原理1
1.1傅里叶描述子1
1.2 傅里叶描述子构成边界1
2MATLAB程序设计3
2.1傅里叶边界描述算子生成函数的程序设计3
2.2傅里叶边界描述逆算子函数的程序设计3
2.3主函数4
3MATLAB运行结果图6
4结果分析8
5心得体会9
参考文献10
附录11
1利用傅里叶描述子进行边界重构原理
1.1傅里叶描述子
图像的目标区域的边界是一条封闭的曲线,因此相对于边界上某一固定的起始点来说,沿边界曲线上的一个动点的坐标变化则是一个周期函数。
通过规范化之后,这个周期函数可以展开成傅里叶级数.而傅里叶级数中的一系列系数是直接与边界曲线的形状有关的,可作为形状的描述,称为傅里叶描绘子.目标区域边界的象素点可以用以弧长为函数的曲线切线角来表示,也可以用复变函数来表示。
傅立叶描述子(FourierDescriptor,简称FD)常用来表示单封闭曲线的形状特征,其基本思想是将目标轮廓曲线建模成一维序列,对该序列进行一维的傅立叶变换,从而获得一系列的傅立叶系数,用这些系数对该目标轮廓进行描述。
傅立叶描述子方法有一系列优点,如:
计算原理简单,描述清晰,具有由粗及精的特性等。
计算原理简单可以使得特征提取更加稳定,因为在计算的过程中,无须设置大量控制参数就可以获得结果,计算的一致性好。
傅立叶描述子具有明确的物理或几何意义,它比某些特征描述子(如Hu不变矩)更具直观性。
此外,由于任何一个序列经傅立叶变换后,其能量主要集中于少数几个低频傅立叶系数上,因此采用极少的傅立叶系数就可以描绘该序列特征。
同时,随着傅立叶系数的增多,该序列的细节特征得以更好地描述。
因此,傅立叶描述子对目标轮廓有非常好的由粗及精的描述能力。
1.2 傅里叶描述子构成边界
一个傅立叶描述子的构建包括两步:
首先,定义一种好的表示(representation)方法对轮廓曲线进行描述;然后,采用傅立叶理论对该曲线进行变换。
不同的曲线表示方法有不同的特性,一个好的表示方法应该使最终获得的傅立叶描述子具有尺度、旋转、平移不变性及起始点的无关性。
傅立叶描述子,是物体形状边界曲线的傅立叶变换系数,是物体边界曲线信号的频域分析结果。
它是一种描述不受起始点移动尺寸变化及旋转影响的曲线的方法。
傅立叶描述子的基本思想,是把坐标的序列点看作复数:
即x轴作为实轴,y轴作为虚轴,边界的性质不变。
对s(k)的傅立叶变换为:
复系数即为边界的傅里叶描述子。
傅立叶描述子序列
反映了原曲线的形状特征,同时,由于傅立叶变换具有能量集中性,因此,在近似边界中存在同样数目的点,但是重建每个点并不使用相同多的项,即少量的傅立叶描述子就可以重构出原曲线。
图1流程图
2MATLAB程序设计
2.1傅里叶边界描述算子生成函数的程序设计
%傅里叶边界描述算子生成函数frdescp
functionz=frdescp(s)
[np,nc]=size(s);
ifnc~=2
error('Smustbeofsize(np,2)');%必须为2列的矩阵
end
ifnp/2~=round(np/2);%若点数不是偶数,则补一个点
s(end+1,:
)=s(end,:
);
np=np+1;
end
x=0:
(np-1);
m=((-1).^x)';
s(:
1)=m.*s(:
1);
s(:
2)=m.*s(:
2);
s=s(:
1)+i*s(:
2);
z=fft(s);
2.2傅里叶边界描述逆算子函数的程序设计
%傅里叶边界描述逆算子函数ifrdescp
functions=ifrdescp(z,nd)
np=length(z);
ifnargin==1||nd>np;
nd=np;
end
x=0:
(np-1);
m=((-1).^x)';
d=round((np-nd)/2);
z(1:
d)=0;
z(np-d+1:
np)=0;
zz=ifft(z);
s(:
1)=real(zz);
s(:
2)=imag(zz);
s(:
1)=m.*s(:
1);
s(:
2)=m.*s(:
2);
2.3主函数
%图像傅里叶算子边界描述
A=imread('1.jpg');
A=im2bw(A);
subplot(221);
imshow(A);
title('原图像E');
se=strel('square',3);%选取3x3正方形结构元素
Ie=imerode(A,se);%对原图像进行腐蚀
B=A-Ie;%原图减去腐蚀结果
subplot(222);
imshow(B);
title('提取出的图像边界E');
i=1;
s=zeros(50,2);
form=1:
50
forn=1:
50
ifB(m,n)==1%将边界坐标存入S矩阵
s(i,1)=m;
s(i,2)=n;
i=i+1
end
end
end
z=frdescp(s);
%图像傅里叶算子边界逆描述
z228=ifrdescp(z,228);
z228=uint8(z228);
I=zeros(50,50);
fork=1:
228
I(z228(k,1),z228(k,2))=1;
k=k+1;
end
subplot(223);
imshow(I);
title('228个描绘子重构的图像');
z127=ifrdescp(z,127);
z127=uint8(z127);
I=zeros(50,50);
fork=1:
127
ifz127(k,1)>0&&z127(k,2)>0
I(z127(k,1),z127(k,2))=1;
k=k+1;
end
end
subplot(224);
imshow(I);
title('127个描绘子重构的图像');
3MATLAB运行结果图
原图像为50*50像素
图2获取边界图图3全部描述子重构图像边界图
图4127描述子重构图像边界图图5226描述子重构图像边界图
图像为30*30像素
图6226描述子重构图像边界图
4、结果分析
根据MATLAB结果图分析。
使用全部228个描绘子重建的图像显示的边界与原图像相同,而127个描绘子生成的图像已经看不出原图形,故而得出随着所用描述子减少,重建图像将出现失真。
重建图像的变化趋势为:
1.显示稍微平滑一些的边界,但产生的形状与原图像十分接近。
2.仅保留了边界的主要特征。
3.丢失边界的主要特征,出现失真。
描绘算子应该尽可能的对平移、旋转和缩放等改变不敏感。
当结果取决于所处理的点的顺序时,要给描绘子的简单变化有关。
5心得体会
两周的课程设计结束了,通过此次课程设计,使我更加扎实的掌握了有关数字图像处理设计方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,同时也暴露了前期我在这方面的知识缺陷与经验不足,实践出真知,通过亲自动手制作,我们掌握的知识不再是纸上谈兵。
在本次课程设计中不可避免的遇到了许多麻烦,在一开始的时候对图像进行提取边界是我使用的是bwperim函数,然而该函数会对图像的边框同时进行边缘提取从而对实验结果造成极大影响,在对程序进行多次调试后,我将边界提取换成了先用imerode函数腐蚀元图像,然后用原图像减去腐蚀结果的到的边界图像成功提取了字母E的边界,而不再含有图像边框。
于是在此不断调试过程中加深了对以上两个函数的理解,及其对于边界提取的不同之处,受益匪浅。
经过本次专业综合课程设计,我对数字图像的处理有了更深层次的认识,并且掌握了一些简单的利用MATLAB处理数字图像的方法,与此同时我还学会了matlab的一些实用的函数,例如:
读取图片的函数imread、显示图片的函数imshow、对图像进行腐蚀imerode、对图像提取边界bwperim以及子函数的构建等等。
总之,这次的课程设计极大地锻炼我的动手能力,以及对数字图像处理的认识,感谢指导老师对我的帮助,让我在今后的生活中能更好的学习工作。
参考文献
[1]杨杰.数字图像处理及Matlab实现[M].北京:
电子工业出版社,2008.
[2]姚敏.数字图像处理[M].北京:
清华大学出版社,2006.
[3]何东健.数字图像处理[M].西安:
西安电子科技大学出版社,2006.
[4]高展宏.基于Matlab的图像处理案例教程[M].北京:
清华大学出版社,2011.
[5]许录平.数字图像处理[M].北京:
科学出版社,2007.