图像特点的求取.docx
《图像特点的求取.docx》由会员分享,可在线阅读,更多相关《图像特点的求取.docx(13页珍藏版)》请在冰豆网上搜索。
图像特点的求取
1设计目的
这次的课设题目是图像特点的求取,利用MATLAB来实现此功能。
第一由由实验室机房提供的matlab软件和提供一张二值图片(包括一个圆或矩形、三角形的目标),然后依照提供的条件完成的要紧任务:
(1)把握图像目标特点求取的大体原理;
(2)熟练把握matlab软件,并利用matlab设计一程序完成以下功能;
(3)通过对二值图像原理的熟悉,进行产生二值图像目标特点提取的程序设计;
(4)用二值图片(包括一个圆或矩形、三角形的目标);计算目标的面积、周长、中心三个参数(不能利用matlab库函数);
(5)要求阅读相关参考文献很多于5篇。
2理论知识介绍
图像的特点
经常使用的图像特点有颜色特点、纹理特点、形状特点、空间关系特点。
一、颜色特点
颜色特点是一种全局特点,描述了图像或图像区域所对应的景物的表面性质。
一样颜色特点是基于像素点的特点,现在所有属于图像或图像区域的像素都有各自的奉献。
由于颜色对图像或图像区域的方向、大小等转变不灵敏,因此颜色特点不能专门好地捕捉图像中对象的局部特点。
另外,仅利用颜色特点查询时,若是数据库专门大,常会将许多不需要的图像也检索出来。
颜色直方图是最经常使用的表达颜色特点的方式,其优势是不受图像旋转和平移转变的阻碍,进一步借助归一化还可不受图像尺度转变的阻碍,基缺点是没有表达出颜色空间散布的信息。
二、纹理特点
纹理特点也是一种全局特点,它也描述了图像或图像区域所对应景物的表面性质。
但由于纹理只是一种物体表面的特性,并非能完全反映出物体的本质属性,因此仅仅利用纹理特点是无法取得高层次图像内容的。
与颜色特点不同,纹理特点不是基于像素点的特点,它需要在包括多个像素点的区域中进行统计计算。
在模式匹配中,这种区域性的特点具有较大的优越性,可不能由于局部的误差而无法匹配成功。
作为一种统计特点,纹理特点常具有旋转不变性,而且关于噪声有较强的抗击能力。
可是,纹理特点也有其缺点,一个很明显的缺点是当图像的分辨率转变的时候,所计算出来的纹理可能会有较大误差。
另外,由于有可能受到光照、反射情形的阻碍,从2-D图像中反映出来的纹理不必然是3-D物体表面真实的纹理。
例如,水中的倒影,滑腻的金属面相互反射造成的阻碍等都会致使纹理的转变。
由于这些不是物体本身的特性,因此将纹理信息应用于检索时,有时这些虚假的纹理会对检索造成“误导”。
在检索具有粗细、疏密等方面较大不同的纹理图像时,利用纹理特点是一种有效的方式。
但当纹理之间的粗细、疏密等易于分辨的信息之间相差不大的时候,通常的纹理特点很难准确地反映出人的视觉感觉不同的纹理之间的不同。
三、形状特点
各类基于形状特点的检索方式都能够比较有效地利用图像中感爱好的目标来进行检索,但它们也有一些一起的问题,包括:
①目前基于形状的检索方式还缺乏比较完善的数学模型;②若是目标有变形时检索结果往往不太靠得住;③许多形状特点仅描述了目标局部的性质,要全面描述目标常对计算时刻和存储量有较高的要求;④许多形状特点所反映的目标形状信息与人的直观感觉不完全一致,或说,特点空间的相似性与人视觉系统感受到的相似性有不同。
另外,从2-D图像中表现的3-D物体事实上只是物体在空间某一平面的投影,从2-D图像中反映出来的形状常不是3-D物体真实的形状,由于视点的转变,可能会产生各类失真。
四、空间关系特点
所谓空间关系,是指图像中分割出来的多个目标之间的彼此的空间位置或相对方向关系,这些关系也可分为连接/邻接关系、交叠/重叠关系和包括/包容关系等。
通常空间位置信息能够分为两类:
相对空间位置信息和绝对空间位置信息。
前一种关系强调的是目标之间的相对情形,如上下左右关系等,后一种关系强调的是目标之间的距离大小和方位。
显而易见,由绝对空间位置可推出相对空间位置,但表达相对空间位置信息常比较简单。
空间关系特点的利用可增强对图像内容的描述区分能力,但空间关系特点常对图像或目标的旋转、反转、尺度转变等比较灵敏。
另外,实际应用中,仅仅利用空间信息往往是不够的,不能有效准确地表达场景信息。
为了检索,除利用空间关系特点外,还需要其它特点来配合。
二值图像特点提取
特点提取有三类方式:
区域内部形状特点提取;区域外部形状特点提取;利用图像层次型数据结构,提取形状特点。
区域内部形状特点提取
区域内部形状特点提取有区域内部空间域分析,它是直接在图像的空间区域内部提取形状特点来进行分析。
特点提取方式要紧有:
(1)拓扑刻画子
(2)凹凸性
(3)区域的测量
这次课设的要紧任务要计算目标的面积、周长、中心三个参数,因此那个地址要紧讨论区域的测量。
要紧包括:
①面积:
区域内像素的总和。
②周长:
关于周长的计算有多种方式,经常使用的有两种:
一种计算方式是针对区域的边界像素而言,上、下、左、右像素间的距离为1,对角线像素间的距离为
。
周长确实是边界像素间距离的总和。
另一种计算方式将边界的像素总和作为周长。
③圆形度:
它是测量区域形状经常使用的量。
其概念如下
R=4
④形心:
平面图形的形心确实是截面图形的几何中心。
当截面具有两个对称轴时,二者的交点确实是该截面的形心。
据此,能够很方便的确信圆形、圆环形、正方形的形心。
但关于一样图形要紧通过以下公式计算其形心:
和
是所求图形中各点的坐标值,A是图形的总面积,即总的像素点。
区域外部形状特点提取
区域外部形状是指组成区域边界的像素集合。
区域边界和骨架的空间域分析法要紧包括方向链码描述和结构分析法。
用于描述曲线的方向链码法是由弗里曼提出。
八链码原理图如下所示。
图八链码原理图
该方式采纳曲线起始点的坐标和线的斜线来表示曲线。
关于离散的数字图像而言,区域的边界可明白得为相邻边界像素逐段相连而成。
关于图像某像素的8-领域,把该像素和其8-领域的各像素连线方向按图所示进行编码,用0、一、二、3、4、五、六、7表示8个方向,这种代码称为方向码。
其中偶数码为水平或垂直方向的链码,码长为1:
奇数码为对角线方向的链码,码长为
。
边界的方向链码表示既便于形状特点的计算,又节省存储空间。
从链码能够提取以下一系列的几何形状特点。
(1)区域边界的周长
假设区域的边界链码为
…
,每一个码
所表示的线段长度为
,那么该区域边界的周长为
L=
=
+(
-
)
式中,
为链码序列中偶码个数;
为链码序列中码的总个数。
(2)计算面积S
由链码计算区域的面积表达式为:
S=
式中,
,
是初始点的纵坐标,
和
别离是方向码长度在k=0(水平),k=2(垂直)方向的分量。
MATLAB中特点提取函数
函数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':
是标量,与区域具有相同标准二阶中心矩的椭圆的离心率
函数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原始所画图像
matlab特点提取函数
由于函数regionprops是函数imfeature的一个升级的函数,二者功能相似,因此那个地址只利用函数regionprops。
在对图像进行特点提取之前必需第一对图像进行标记。
即利用matlab中的函数bwlabel,使图像的各个连通的区域取得标记。
然后能够直接利用函数regionprops提取其特点参数。
程序如下;
>>G=imread('');%读取图像
>>im=im2bw(G);%将其转化为二值图像
>>one=find(im==1);
>>zero=find(im==0);
>>im(one)=0;
>>im(zero)=1;%对图形矩阵求反
>>imwrite(im,'');%存储转换后的矩阵
>>L=bwlabel(im);%标记连通的区域
>>stats=regionprops(L,'all')%提取其特点
关于一个图3-1转换后的二值图像为:
图3-2处置后的二值图像
提取特点后可得出结果为
Area:
21901
Centroid:
[121121]
BoundingBox:
[181121]
SubarrayIdx:
{[1x121double][1x181double]}
MajorAxisLength:
MinorAxisLength:
Eccentricity:
Orientation:
0
ConvexHull:
[9x2double]
ConvexImage:
[121x181logical]
ConvexArea:
21901
Image:
[121x181logical]
FilledImage:
[121x181logical]
FilledArea:
21901
EulerNumber:
1
Extrema:
[8x2double]
EquivDiameter:
Solidity:
1
Extent:
1
PixelIdxList:
[21901x1double]
PixelList:
[21901x2double]
Perimeter:
600
从提取的特点能够看到其面积为:
21901;
形心坐标为:
[121121];
周长为:
(121+181)×2-4=600。
matlab自编程序
面积求取
二值图像面积的求取确实是计算图像中1的个数,程序如下:
one=find(L==1);
>>size(one)
运行即可的结果为:
ans=
219011
即面积为21901。
其中L是已经标记的图像矩阵,find()是返回矩阵其括号中中非0项的坐标,通常与逻辑运算符一路利用。
size()是返加一个矩阵的行数和列数。
周长的求取
周长是计算像素距离的总和,其程序为:
>>p=bwperim(L);
>>perm=sum(sum(p))
欲行结果为:
perm=
600
其中bwperim()是二值图像的边界所取得的一个矩阵X,sum()是求和函数,在程序中sum(p)的是求各列的和,那么sum(sum(p))是求p的总和。
取得的边缘函数为:
图3-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/
ans=
121
>>Y/
ans=
121
其它图形求取
同上面的矩形求取进程一样,图3-4的三角形的求取特点值为:
stats=
Area:
48620
Centroid:
[]
BoundingBox:
[339286]
SubarrayIdx:
{[1x286double][1x339double]}
MajorAxisLength:
MinorAxisLength:
Eccentricity:
Orientation:
ConvexHull:
[16x2double]
ConvexImage:
[286x339logical]
ConvexArea:
48893
Image:
[286x339logical]
FilledImage:
[286x339logical]
FilledArea:
48620
EulerNumber:
1
Extrema:
[8x2double]
EquivDiameter:
Solidity:
Extent:
PixelIdxList:
[48620x1double]
PixelList:
[48620x2double]
Perimeter:
+003
面积为:
48620;
形心坐标为:
[];
周长为:
908。
图3-4二值三角形图像
图3-5的圆形的求取特点值为:
stats=
Area:
22536
Centroid:
[]
BoundingBox:
[170170]
SubarrayIdx:
{[1x170double][1x170double]}
MajorAxisLength:
MinorAxisLength:
Eccentricity:
0
Orientation:
0
ConvexHull:
[57x2double]
ConvexImage:
[170x170logical]
ConvexArea:
22676
Image:
[170x170logical]
FilledImage:
[170x170logical]
FilledArea:
22536
EulerNumber:
1
Extrema:
[8x2double]
EquivDiameter:
Solidity:
Extent:
PixelIdxList:
[22536x1double]
PixelList:
[22536x2double]
Perimeter:
面积为:
22536;
形心坐标为:
[];
周长为:
476
图3-5二值圆形图像
心得体会
数字图像处置是一门理论与实践紧密结合的课程。
做大量的上机实验有助于进一步明白得和巩固理论知识,还有助于提高分析和解决问题的能力。
MATLAB壮大的运算和图形处置功能,能够使数字图像处置效率大大提高,使数字图像处置工作变得十分简单和直观。
这次数字图像处置课程设计历时四天,在整整四天的日子里,能够说得是苦多于甜,可是能够学到很多很多的的东西,专门是学到了很多在书本上所没有学到过的知识。
以前老是在课堂上面听教师讲一些理论方面的知识,看着感觉简单。
但这次课设,当我在实际中自己处置问题时,才发觉有许多咱们不了解的细节方面的知识,这些都需要咱们在实践中去尝试解决。
例如这次课设是图像特点提取,第一是了解特点提取的原理。
可是我明白得了图像特点提取的原理以后,仍是难以利用matlab编程去实现对二值图像面积、周长、形心的求取。
最后在查取大量资料和自己的不断实验以后才完成了这次课设。
第二,以前关于MATLAB的利用还处于一知半解的状态上,可是通过这次课程设计,关于怎么去利用函数,如何去查看一个函数的功能,在正确利用MATLAB的语法规那么上都有了专门大程度的提高。
通过这次课程设计使我知道了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立试探的能力。
在设计的进程中碰到问题,能够说得是困难重重,第一是资料的查获,然后是对知识点的明白得,而且利用理论知识去解决实际问题。
在设计的进程中我也发觉了自己的不足的地方,对以前所学过的知识明白得得不够深刻,把握得不够牢固。
在设计中碰到了很多编程问题,但最后通过自己的尽力完成了这次课设。
这让我明白了只要有恒心,有耐心,就能够够达到自己的目标,完成任务!
参考文献
[1](美)冈萨雷斯等.数字图像处置(MATLAB版).阮秋奇等译.北京:
电子工业出版社,2005
[2](美)冈萨雷斯等.数字图像处置(第二版)中文版.阮秋奇等译.北京:
电子工业出版社,2007
[3]贾永红.数字图像处置.武汉:
武汉大学出版社,2003
[4]贺兴华等.图像处置.北京:
人民邮电出版社,2006
[5]朱衡君.MATLAB语言及实践教程.北京:
清华大学出版社,2005
[6]阮秋奇.数字图像处置学.北京:
电子工业出版社,2000