图像特征的求取.docx
- 文档编号:12364272
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:17
- 大小:65.19KB
图像特征的求取.docx
《图像特征的求取.docx》由会员分享,可在线阅读,更多相关《图像特征的求取.docx(17页珍藏版)》请在冰豆网上搜索。
图像特征的求取
1设计目的
这次的课设题目是图像特征的求取,利用MATLAB来实现此功能。
首先由由实验室机房提供的matlab软件和提供一张二值图片(包含一个圆或矩形、三角形的目标),然后根据提供的条件完成的主要任务:
(1)掌握图像目标特征求取的基本原理;
(2)熟练掌握matlab软件,并利用matlab设计一程序完成以下功能;
(3)通过对二值图像原理的认识,进行产生二值图像目标特征提取的程序设计;
(4)用二值图片(包含一个圆或矩形、三角形的目标);计算目标的面积、周长、中心三个参数(不能使用matlab库函数);
(5)要求阅读相关参考文献不少于5篇。
2理论知识介绍
2.1图像的特征
常用的图像特征有颜色特征、纹理特征、形状特征、空间关系特征。
一、颜色特征
颜色特征是一种全局特征,描述了图像或图像区域所对应的景物的表面性质。
一般颜色特征是基于像素点的特征,此时所有属于图像或图像区域的像素都有各自的贡献。
由于颜色对图像或图像区域的方向、大小等变化不敏感,所以颜色特征不能很好地捕捉图像中对象的局部特征。
另外,仅使用颜色特征查询时,如果数据库很大,常会将许多不需要的图像也检索出来。
颜色直方图是最常用的表达颜色特征的方法,其优点是不受图像旋转和平移变化的影响,进一步借助归一化还可不受图像尺度变化的影响,基缺点是没有表达出颜色空间分布的信息。
二、纹理特征
纹理特征也是一种全局特征,它也描述了图像或图像区域所对应景物的表面性质。
但由于纹理只是一种物体表面的特性,并不能完全反映出物体的本质属性,所以仅仅利用纹理特征是无法获得高层次图像内容的。
与颜色特征不同,纹理特征不是基于像素点的特征,它需要在包含多个像素点的区域中进行统计计算。
在模式匹配中,这种区域性的特征具有较大的优越性,不会由于局部的偏差而无法匹配成功。
作为一种统计特征,纹理特征常具有旋转不变性,并且对于噪声有较强的抵抗能力。
但是,纹理特征也有其缺点,一个很明显的缺点是当图像的分辨率变化的时候,所计算出来的纹理可能会有较大偏差。
另外,由于有可能受到光照、反射情况的影响,从2-D图像中反映出来的纹理不一定是3-D物体表面真实的纹理。
例如,水中的倒影,光滑的金属面互相反射造成的影响等都会导致纹理的变化。
由于这些不是物体本身的特性,因而将纹理信息应用于检索时,有时这些虚假的纹理会对检索造成“误导”。
在检索具有粗细、疏密等方面较大差别的纹理图像时,利用纹理特征是一种有效的方法。
但当纹理之间的粗细、疏密等易于分辨的信息之间相差不大的时候,通常的纹理特征很难准确地反映出人的视觉感觉不同的纹理之间的差别。
三、形状特征
各种基于形状特征的检索方法都可以比较有效地利用图像中感兴趣的目标来进行检索,但它们也有一些共同的问题,包括:
①目前基于形状的检索方法还缺乏比较完善的数学模型;②如果目标有变形时检索结果往往不太可靠;③许多形状特征仅描述了目标局部的性质,要全面描述目标常对计算时间和存储量有较高的要求;④许多形状特征所反映的目标形状信息与人的直观感觉不完全一致,或者说,特征空间的相似性与人视觉系统感受到的相似性有差别。
另外,从2-D图像中表现的3-D物体实际上只是物体在空间某一平面的投影,从2-D图像中反映出来的形状常不是3-D物体真实的形状,由于视点的变化,可能会产生各种失真。
四、空间关系特征
所谓空间关系,是指图像中分割出来的多个目标之间的相互的空间位置或相对方向关系,这些关系也可分为连接/邻接关系、交叠/重叠关系和包含/包容关系等。
通常空间位置信息可以分为两类:
相对空间位置信息和绝对空间位置信息。
前一种关系强调的是目标之间的相对情况,如上下左右关系等,后一种关系强调的是目标之间的距离大小以及方位。
显而易见,由绝对空间位置可推出相对空间位置,但表达相对空间位置信息常比较简单。
空间关系特征的使用可加强对图像内容的描述区分能力,但空间关系特征常对图像或目标的旋转、反转、尺度变化等比较敏感。
另外,实际应用中,仅仅利用空间信息往往是不够的,不能有效准确地表达场景信息。
为了检索,除使用空间关系特征外,还需要其它特征来配合。
2.2二值图像特征提取
特征提取有三类方法:
区域内部形状特征提取;区域外部形状特征提取;利用图像层次型数据结构,提取形状特征。
2.2.1区域内部形状特征提取
区域内部形状特征提取有区域内部空间域分析,它是直接在图像的空间区域内部提取形状特征来进行分析。
特征提取方法主要有:
(1)拓扑描绘子
(2)凹凸性
(3)区域的测量
这次课设的主要任务要计算目标的面积、周长、中心三个参数,因此这里主要讨论区域的测量。
主要包括:
①面积:
区域内像素的总和。
②周长:
关于周长的计算有多种方法,常用的有两种:
一种计算方法是针对区域的边界像素而言,上、下、左、右像素间的距离为1,对角线像素间的距离为
。
周长就是边界像素间距离的总和。
另一种计算方法将边界的像素总和作为周长。
③圆形度:
它是测量区域形状常用的量。
其定义如下
R=4
④形心:
平面图形的形心就是截面图形的几何中心。
当截面具有两个对称轴时,二者的交点就是该截面的形心。
据此,可以很方便的确定圆形、圆环形、正方形的形心。
但对于一般图形主要通过以下公式计算其形心:
和
是所求图形中各点的坐标值,A是图形的总面积,即总的像素点。
2.2.2区域外部形状特征提取
区域外部形状是指构成区域边界的像素集合。
区域边界和骨架的空间域分析法主要包括方向链码描述和结构分析法。
用于描述曲线的方向链码法是由弗里曼提出。
八链码原理图如下所示。
图2.2.2八链码原理图
该方法采用曲线起始点的坐标和线的斜线来表示曲线。
对于离散的数字图像而言,区域的边界可理解为相邻边界像素逐段相连而成。
对于图像某像素的8-领域,把该像素和其8-领域的各像素连线方向按图2.2.2所示进行编码,用0、1、2、3、4、5、6、7表示8个方向,这种代码称为方向码。
其中偶数码为水平或垂直方向的链码,码长为1:
奇数码为对角线方向的链码,码长为
。
边界的方向链码表示既便于形状特征的计算,又节省存储空间。
从链码可以提取以下一系列的几何形状特征。
(1)区域边界的周长
假设区域的边界链码为
…
,每个码
所表示的线段长度为
,那么该区域边界的周长为
L=
=
+(
-
)
式中,
为链码序列中偶码个数;
为链码序列中码的总个数。
(2)计算面积S
由链码计算区域的面积表达式为:
S=
式中,
,
是初始点的纵坐标,
和
分别是方向码长度在k=0(水平),k=2(垂直)方向的分量。
2.3MATLAB中特征提取函数
2.3.1函数imfeature
此函数主要是用来提取特征以计算图像区域的特征尺寸。
其语法为:
stats=imfeature(L,measurements)
stats=imfeature(L,measurements,n)
参数measurements可以为:
1.'Area':
区域内像素数目,也可以看成是区域的面积
2.'ConvexHull':
是p行2列的矩阵,包含某区域的最小凸多边形
3.'EulerNumber':
是标量,几何拓扑中的一个拓扑不变量--欧拉数
4.'Centroid':
1*2向量,区域的质心(x,y)
5.'ConvexImage':
二值图像,用来画出上述的区域最小凸多边形
6.'Extrema':
8行2列矩阵,八方向区域极值点
7.'BoundingBox':
最小矩形1*4向量
8.'ConvexArea':
标量,'ConvexImage'中的像素数
9.'EquivDiameter':
是标量,等价直径:
与区域具有相同面积的圆的直径
10.'MajorAxisLength':
是标量,与区域具有相同标准二阶中心矩的椭圆的长轴长度
11.'Image':
二值图像,与某区域具有相同大小的逻辑矩阵
12.'Solidity':
是标量,同时在区域和其最小凸多边形中的像素比例
13.'MinorAxisLength':
是标量,与区域具有相同标准二阶中心矩的椭圆的短轴长度
14.'FilledImage':
与Image相同,唯一区别是这是个做了填充的逻辑矩阵
15.'Extent':
是标量,同时在区域和其最小边界矩形中的像素比例
16.'Orientation':
是标量,与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角(度)
17.'FilledArea':
是标量,填充区域图像中的on像素个数
18.'PixelList':
p行ndims(L)列矩阵,存储上述索引对应的像素坐标
19.'Eccentricity':
是标量,与区域具有相同标准二阶中心矩的椭圆的离心率
2.3.2函数regionprops
函数regionprops主要用来测量图像区域属性。
其语法为:
D=regionprops(L,properties)
其中,L是标记矩阵,properties是一个用逗号分隔的字符串列表,一个包含字符串的单元数组,单个字符串'all','basic',如果是'all',那么就会计算所有描述子,如果是'basic',那么就会计算'Area','Centroid','BoundingBox'三个基本描述子。
参数properties介绍如下:
1,'Area':
区域内像素数目,也可以看成是区域的面积
2,'BoundingBox':
最小矩形1*4向量
3,'Centroid':
1*2向量,区域的质心(x,y)
4,'ConvexArea':
标量,'ConvexImage'中的像素数
5,'ConvexHull':
是p行2列的矩阵,包含某区域的最小凸多边形
6,'ConvexImage':
二值图像,用来画出上述的区域最小凸多边形
7,'Eccentricity':
是标量,与区域具有相同标准二阶中心矩的椭圆的离心率
8'EquivDiameter':
是标量,等价直径:
与区域具有相同面积的圆的直径
9'EulerNumber':
是标量,几何拓扑中的一个拓扑不变量--欧拉数
10'Extent':
是标量,同时在区域和其最小边界矩形中的像素比例
11'Extrema':
8行2列矩阵,八方向区域极值点
12'FilledArea':
是标量,填充区域图像中的on像素个数
13'FilledImage':
与Image相同,唯一区别是这是个做了填充的逻辑矩阵
14'Image':
二值图像,与某区域具有相同大小的逻辑矩阵。
15'MajorAxisLength':
是标量,与区域具有相同标准二阶中心矩的椭圆的长轴长度
16'MinorAxisLength':
是标量,与区域具有相同标准二阶中心矩的椭圆的短轴长度
17'Orientation':
是标量,与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角(度)
18'PixelList':
p行ndims(L)列矩阵,存储上述索引对应的像素坐标
3程序设计及结果
所要处理的图像如下图所示:
图3-1原始所画图像
3.1matlab特征提取函数
由于函数regionprops是函数imfeature的一个升级的函数,两者功能相似,所以这里只利用函数regionprops。
在对图像进行特征提取之前必须首先对图像进行标记。
即利用matlab中的函数bwlabel,使图像的各个连通的区域得到标记。
然后可以直接利用函数regionprops提取其特征参数。
程序如下;
>>G=imread('jx.jpg');%读取图像
>>im=im2bw(G);%将其转化为二值图像
>>one=find(im==1);
>>zero=find(im==0);
>>im(one)=0;
>>im(zero)=1;%对图形矩阵求反
>>imwrite(im,'j.jpg');%存储转换后的矩阵
>>L=bwlabel(im);%标记连通的区域
>>stats=regionprops(L,'all')%提取其特征
对于一个图3-1转换后的二值图像为:
图3-2处理后的二值图像
提取特征后可得出结果为
Area:
21901
Centroid:
[121121]
BoundingBox:
[30.500060.5000181121]
SubarrayIdx:
{[1x121double][1x181double]}
MajorAxisLength:
209.0008
MinorAxisLength:
139.7188
Eccentricity:
0.7437
Orientation:
0
ConvexHull:
[9x2double]
ConvexImage:
[121x181logical]
ConvexArea:
21901
Image:
[121x181logical]
FilledImage:
[121x181logical]
FilledArea:
21901
EulerNumber:
1
Extrema:
[8x2double]
EquivDiameter:
166.9887
Solidity:
1
Extent:
1
PixelIdxList:
[21901x1double]
PixelList:
[21901x2double]
Perimeter:
600
从提取的特征可以看到其面积为:
21901;
形心坐标为:
[121121];
周长为:
(121+181)×2-4=600。
3.2matlab自编程序
3.2.1面积求取
二值图像面积的求取就是计算图像中1的个数,程序如下:
one=find(L==1);
>>size(one)
运行即可的结果为:
ans=
219011
即面积为21901。
其中L是已经标记的图像矩阵,find()是返回矩阵其括号中中非0项的坐标,通常与逻辑运算符一起使用。
size()是返加一个矩阵的行数和列数。
3.2.2周长的求取
周长是计算像素距离的总和,其程序为:
>>p=bwperim(L);
>>perm=sum(sum(p))
欲行结果为:
perm=
600
其中bwperim()是二值图像的边界所得到的一个矩阵X,sum()是求和函数,在程序中sum(p)的是求各列的和,则sum(sum(p))是求p的总和。
得到的边缘函数为:
图3-3边缘提取的图像
3.2.3形心的求取
形心是平面几何图形的中心,其计算公式为;
X=0;Y=0;
formm=1:
m
fornn=1:
n
X=X+mm*L(mm,nn);
Y=Y+nn*L(mm,nn);
end
end
>>X/stats.Area
ans=
121
>>Y/stats.Area
ans=
121
3.2.4其它图形求取
同上面的矩形求取过程一样,图3-4的三角形的求取特征值为:
stats=
Area:
48620
Centroid:
[421.6657281.0459]
BoundingBox:
[252.500090.5000339286]
SubarrayIdx:
{[1x286double][1x339double]}
MajorAxisLength:
277.2913
MinorAxisLength:
269.9545
Eccentricity:
0.2285
Orientation:
-3.6351
ConvexHull:
[16x2double]
ConvexImage:
[286x339logical]
ConvexArea:
48893
Image:
[286x339logical]
FilledImage:
[286x339logical]
FilledArea:
48620
EulerNumber:
1
Extrema:
[8x2double]
EquivDiameter:
248.8070
Solidity:
0.9944
Extent:
0.5015
PixelIdxList:
[48620x1double]
PixelList:
[48620x2double]
Perimeter:
1.0480e+003
面积为:
48620;
形心坐标为:
[421.6657281.0459];
周长为:
908。
图3-4二值三角形图像
图3-5的圆形的求取特征值为:
stats=
Area:
22536
Centroid:
[221.5000221.5000]
BoundingBox:
[136.5000136.5000170170]
SubarrayIdx:
{[1x170double][1x170double]}
MajorAxisLength:
169.3968
MinorAxisLength:
169.3968
Eccentricity:
0
Orientation:
0
ConvexHull:
[57x2double]
ConvexImage:
[170x170logical]
ConvexArea:
22676
Image:
[170x170logical]
FilledImage:
[170x170logical]
FilledArea:
22536
EulerNumber:
1
Extrema:
[8x2double]
EquivDiameter:
169.3922
Solidity:
0.9938
Extent:
0.7798
PixelIdxList:
[22536x1double]
PixelList:
[22536x2double]
Perimeter:
558.8427
面积为:
22536;
形心坐标为:
[221.5000221.5000];
周长为:
476
图3-5二值圆形图像
心得体会
数字图像处理是一门理论与实践紧密结合的课程。
做大量的上机实验有助于进一步理解和巩固理论知识,还有助于提高分析和解决问题的能力。
MATLAB强大的运算和图形处理功能,可以使数字图像处理效率大大提高,使数字图像处理工作变得十分简单和直观。
这次数字图像处理课程设计历时四天,在整整四天的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,特别是学到了很多在书本上所没有学到过的知识。
以前总是在课堂上面听老师讲一些理论方面的知识,看着觉得简单。
但这次课设,当我在实际中自己处理问题时,才发现有许多我们不了解的细节方面的知识,这些都需要我们在实践中去尝试解决。
例如这次课设是图像特征提取,首先是了解特征提取的原理。
但是我理解了图像特征提取的原理之后,还是难以利用matlab编程去实现对二值图像面积、周长、形心的求取。
最后在查取大量资料和自己的不断实验之后才完成了这次课设。
其次,以前对于MATLAB的使用还处于一知半解的状态上,但是经过这次课程设计,对于怎么去使用函数,怎样去查看一个函数的功能,在正确使用MATLAB的语法规则上都有了很大程度的提高。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,首先是资料的查获,然后是对知识点的理解,并且利用理论知识去解决实际问题。
在设计的过程中我也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
在设计中遇到了很多编程问题,但最后经过自己的努力完成了这次课设。
这让我明白了只要有恒心,有耐心,就可以达到自己的目标,完成任务!
参考文献
[1](美)冈萨雷斯等.数字图像处理(MATLAB版).阮秋奇等译.北京:
电子工业出版社,2005
[2](美)冈萨雷斯等.数字图像处理(第二版)中文版.阮秋奇等译.北京:
电子工业出版社,2007
[3]贾永红.数字图像处理.武汉:
武汉大学出版社,2003
[4]贺兴华等.MATLAB7.X图像处理.北京:
人民邮电出版社,2006
[5]朱衡君.MATLAB语言及实践教程.北京:
清华大学出版社,2005
[6]阮秋奇.数字图像处理学.北京:
电子工业出版社,2000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像 特征 求取
![提示](https://static.bdocx.com/images/bang_tan.gif)