- 相关推荐
彩色图像特征提取研究(一)
彩色图像特征提取研究
徐红霞
摘要:以普通的彩色图像为例,介绍了对彩色图像特征提取的原理。其具体过程分为原图像的预处理、图像信息分析、图像的特征提取,然后用MATLAB实现具体的过程,最后获得需要的颜色特征、纹理特征、轮廓特征等。
关键词:彩色图像 图像预处理 特征提取
1.引言
1.1 选题背景
近年来,数字图像的数量正在飞速增长,对日益庞大的图像库进行有效的管理尤为重要。基于内容的图像检索CBIR(Content Based Image Retrieval),如颜色特征、纹理特征等进行索引的方法成为当前多媒体检索研究的热点之一。
另一方面计算机视觉技术在现代生活中已获得了广泛的应用,高效的图像处理算法是计算机视觉技术能否获得成功应用的关键,近年来,随着计算机视觉研究的不断进步、多媒体技术和虚拟现实技术的不断完善、彩色成像设备的不断改进,彩色图像的应用越来越广泛,然而,图像处理研究仍然集中在灰度图像上。对灰度图像的技术通常不能用到彩色图像,因为彩色图像更复杂,对计算机的计算速度与存储容量要求更高。彩色图像处理己经成为当前图像处理领域重要的研究课题。
图像的特征有颜色、形状、纹理等。颜色是物体表面的属性,因此对于图像分割和目标识别等的研究都具有非常重要的意义。颜色在计算机视觉中应用也在不断进步;另一方面,纹理是物体表面结构的模式,可以认为是颜色(灰度)在空间以一定的变化形式而产生的图案(模式),是图像的一种区域性质[8]。
1.2 程序简介
MATLAB是一门编程语言,其语法规则与一般的结构化编程语言(如C语言等)大同小异,而且它不需要定义变量和数组,使用更加方便。具有一般的语言基础就可以很快掌握。其次MATLAB有代码短小高效的特点,由于MATLAB已经将数学问题的具体算法编成了现成的函数,我们只要熟悉算法的特点、使用场合、函数的调用格式和参数意义等,通过调用函数就可以很快地解决问题。该软件有六十多个工具箱,可以直接调用,节省时间和精力。工具箱实际上是对MATLAB进行扩展应用的一系列MATLAB函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等。随着MATLAB版本的不断升级,其所含的工具箱的功能也越来越丰富。随着MATLAB版本的不断升级,其所含的工具箱的功能也越来越丰富,因此,应用范围也越来越广泛,成为涉及数值分析的各类工程师不可不用的工具。其次,它有强大的图形表达功能,不仅可以绘制一般的二维、三维图像,如线图、条形图、饼图、散点图、直方图与误差条图等,还可以绘制工程特性较强的特殊图形,如玫瑰花图、极坐标图、二维、三维等值线图、三维表面图、假彩色图、二维、三维流线图、三维彩色流锥图、流沙图、流带图、流管图、卷曲图与切片图等,此外还可以生成快照图和进行动画制作,对于图像的处理有很重要的作用。所以这次研究我们以MATLAB作为实现原理过程的程序。
1.3 课题流程
本课题主要的环节为彩色图像的分析和特征提取,流程图如下:
原图像 → 图像预处理 → 图像分析 → 特征提取
原始图像:由各种路径获得且能被MATLAB支持的各种格式的图像数据,如BMP格式、GIF格式、TIF格式、JPEG格式的图像等。
图像的预处理:直方图修正,灰度变化,图像的平滑与锐化,图像类型转换。
图像分析:像素值统计,直方图提取,区域属性等。
特征提取:彩色图像的轮廓特征,颜色值特征,纹理特征等。
本文以MATLAB工具箱中一张普通的彩色图像‘flowers.tif’为例,利用MATLAB编程实现彩色图像的特征提取:
2.图像的预处理
2.1直方图修正
直方图修正的应用非常广泛。例如:在医学上,为了改善X射线机操人员的工作条件,可以采用低强度的X射线曝光,但是这样获得的X光片灰度级集中在暗区,许多图像细节无法看清,判断困难,通过修正使灰度级分布在人眼合适的亮度区域,就可以使X光片中的细节,如筋骨、关节等清晰可见。另外还有一些非可见光成像的工业无损检测(如射线成像、红外成像等),军事图像通常有直方图均衡化和直方图规定化两大类。下面介绍其中一种方法—直方图均衡化:
直方图均衡化也称为直方图均匀化,是一种常用的灰度增强算法,是将原图的直方图经过函数修正为均匀直方图,然后按均衡化的直方图修正原图像。具体方法是:
给出原始图像的所有灰度级Sk,k=0,1,…,L-1。
统计原始图像各灰度级的像素nk。
用式p=(Sk)=nk/n 计算原始图像的直方图。
计算原始图像的累计直方图。
取整计算:Tk=int[(N-1)tk+k/N]
确定映射关系Sk→tk。
统计新直方图各灰度级的像素nk。
计算新的直方图:pk=nk/n
2.2图像的平滑与锐化
图像的平滑-低通滤波:一般说来,图像的边缘和噪声都应对于傅里叶变换中的高频部分,所以能让低频信赖畅通无阻而同时滤波掉高频分量的低通滤波器能够平滑图像,去除噪声。
这里应该指出,傅里叶变换的主要能量都集中在频谱中心的,合理的选择截止频率对保留图像的能量是至关重要的,以一副256×256的图像为例,如果D0=5,那么理想低通滤波器将保存图像98%的能量。随着D0的增大,图像的能量将迅速流失,如果D0=22,那么98%的能量将会通过该滤波器流失。另外,理想低通滤波后的图像将会出现一种“振铃”特性,造成图像不同程度的模糊,D0越小,模糊程度越明显。造成这种模糊的原因在于理想低通滤波器的传递函数H(u,v)在D0处由1变为0,该H(u,v)经过傅里叶反变换后在空域中将表现为同心圆的形式。
图像的锐化-高通滤波:由于图像中灰度发生骤变的部分与其频谱的高频分量相对应,所以应采用高频滤波器衰减或抑制低频分量,使高频分量畅通并能够对图像进行锐化处理。
由于经过高通滤波处理后的图像丢失了许多低频信息,所以图像的平滑区基本会消失。为此,需要采用高频加强滤波来弥补。高频加强滤波就是在设计滤波传递函数时,在原有的设计结果上添加一个大于0,小于1的常数c,即
H’(u,v)=H(u,v)+c
于是滤波结果为
G’(u,v)=F(u,v)H’(u,v)=F(u,v)H(u,v)+cH(u,v)
由上式可见,高频加强滤波在高频滤波的基础上保留了cF(u,v),的低通分量,高频分量也比一般高通滤波时加强了cF(u,v),故称为高频加强滤波,这种滤波处理效果比一般的高频滤波要好。
2.3 图像类型转换
在MATLAB中图像类型可分为二值图像、索引图像、灰度图像、多帧图像和RGB图像,许多图像处理对图像的图像类型有一定的要求,如MATLAB中彩色图像的轮廓及边缘提取需要将真彩图像转换为灰度图像,而具体的过程只需要通过rgb2gray函数就可以实现。同样将彩色图像二值化也只需通过im2bw函数就能获得,通过MATLAB对原图编程,获得如下图形:
图(2-5)图像的格式转化
3.图像的分析
3.1 像素值统计
像素值在彩色图像中表示为颜色值的信息,用于彩色图像的颜色特征提取。MATLAB的图像处理工具箱提供有pixval函数和impixel函数用于提供图像特定像素的数据值(灰度值或颜色值)信息。而improfile函数用于沿着图像中一条直线段或折线段计算和绘制图像像素值的图像[2]。三个函数分别获得像素值统计结果如下:
图(3-1)pixval函数统计像素值 图(3-2)impixel函数统计像素值
图(3-3)improfile函数统计像素值
3.2 直方图提取
直方图用于显示灰度图像的灰度值分布,用于图像的纹理特征提取。MATLAB中用imhist函数可以创建图像的统计直方图,得到的结果如下图所示:
图(3-4)图像直方图提取
3.3 区域属性
图像区域的有关属性有区域的面积、质心、均值、标准差和相关系数等等,对于彩色图像纹理等特征的提取有很大的作用,在MATLAB中可以用mean2函数、std2函数和corr2函数分别计算图像矩阵的均值、标准差和两个相同矩阵的相关系数。有关他们的用法不再细讲。而对于选定的图像区域可以用regionprops函数来计算,例如,区域的面积、质心、包含区域的边框等。
4.特征提取
4.1彩色图像特征提取
通过图像信息去测量、识别或理解其中的对象物,依赖于一些能表征对象物的图像物理特征,如边缘、区域、形状、颜色、纹理等等。通过各种处理方法,将包含图像信息的必要的特征显露出来,并加以量化的处理称之为彩色图像的特征提取[1]。
图像特征是指图像的原始特性或属性。图像特征提取工作的结果给出某一具体的图像中与其他图像相区别的特征[1]。
4.2 彩色图像的轮廓提取
边缘、轮廓特征是可以直观观测的特征之一,也是描述物体外形的形态特征。在图像处理技术中,许多场合都要求计算机进行图像描述,并按照特征对图像进行分析和理解。如在医学癌细胞识别中,要求能够从显微镜中得到有关癌细胞形状的描述等。而边缘检测技术是所有基于边界分割的图像分析方法的第一步。
在MATLAB里可以用imcontour函数来轮廓提取实现这一过程,通过函数获得的结果如下图所示:
图(4-1)图像的轮廓提取
边缘的检测可以借助空域微分算子利用卷积来实现。常用的微分算子有梯度算子和拉普拉斯算子等,这些算子不但可以检测图像的而为边缘,还可以检测图像序列的三维边缘。用微分算子对图像进行边缘检测所得的边界常常会发生断裂现象。所以需要通过领域端点搜索、曲线拟合和Hough变换等方法将边缘连接起来。
这里所用的边缘检测算子为canny算子,它检测边缘的方法是寻找图像梯度的局部极大值,梯度是用高斯滤波器的倒数计算的。Canny方法使用两个阈值来分别检测强边缘和弱边缘,而且仅当弱边缘与强边缘相连时,弱边缘才会包含在输出中,因此,此方法不容易受噪声的干扰,能够检测的真正的弱边缘。
而连接方法选用Hough变换,它的主要优点是受噪声和曲线间断的影响小,利用Hough变换出来可以进行边界连接之外,还可以用来直接检测某些一直的形状的目标。Hough变换是利用图像的全局特征将边缘像素连接起来形成封闭边界的一种连接方法。利用点与直线的对偶性的特点,在图像空间中,所有过点(x,y)的直线都满足以下方程:
y=kx+b用极坐标表示式为:ρ=x cosθ+y sinθ其中,(ρ,θ)定义了一个从原点到直线上最近点的向量,该向量与直线垂直,极坐标变换就称做直线的Hough变换。由于x-y平面中的直线上的各个边缘点都满足参数的等式,所以x-y空间中所有的边缘对应的正弦曲线都相交于点(ρ0,θ0),可以建立一个位于参数空间中的直方图,对于每一个边缘点,给参数空间中的所有与之对应的正弦曲线的直方图方格一个增量。于是,当所有边缘点都经过这种处理后,包含(ρ0,θ0)的方格将具有局部最大值,通过对参数空间的直方图进行局部最大值搜索就可以获得边界直线的参数。
通过函数的MATLAB实现得到如下结果图:
图(4-2)图像的边缘检测
4.3图像分割
图像分割是由图像处理到图像分析的关键步骤,也是一种基本的计算机视觉技术。随的图像处理,诸如特征提取和对象识别,都依赖于图像分割的质量。图像分割就是指把像分成各具特性的区域并提取感兴趣目标的技术和过程。尽管人们在图像分割方面做了许多研究工作,但由于没有通用的分割理论,现己提出的分割算法大都是针对具体问题的,并没有一种适合所有图像的通用分割算法[7]。对于彩色图像分割问题,必须充分利用彩色图像所包含的丰富的色彩信息,选择适当的特征,使目标和背景能依据特征上的差别进行区分,利用这个颜色特征将彩色图像转变成灰度图像,再确定阈值将灰度图像二值化。
4.4纹理特征提取
为了获得较好的分割效果,选择纹理特征时要兼顾图像的局部灰度特性以及像素点彼此之间的灰度依赖性,因此,本文选用以像素点为中心的窗口灰度共生矩阵特征作为该像素点的纹理特征。
灰度共生矩阵(Gray Level Concurrence Matrix)是近年来发展起来的分析纹理特性的有效方法,它反应了图像中任意两点灰度的相关性。灰度共生矩阵被定义为从灰度值为i的像素点离开某个位置关系δ=(⊿X,⊿Y)上点的灰度值为j的距离,两像素的位置关系如图2所示,即k(i,j)={(x,y)|f(x,y)=i且f(x+⊿X,y+⊿Y)=j;x,y=0,1,…,N-1}集合的像素个数。其中,x,y是图像中像素坐标,f(x,y)是该点灰度值,i,j=0,1,…,L-1,L是灰度级数目,⊿X,⊿Y是偏移量。标识图像的纹理特征有很多,常用的统计分量主要有纹理一致性、纹理反差、纹理熵和纹理相关性。本文选用了纹理一致性作为纹理特征,具体的定义如下:
纹理一致性:其中p(i,j)为归一化共生矩阵中灰度级对为(i,j)的联合概率,k[i][j]是{(x,y)|f(x,y)=i且f(x+⊿X, ⊿y+Y)=j;x,y=0,1…N-1}集合像素个数,L是灰度级数目。
4.5傅立叶特征
计算纹理要选择窗口,仅一个点是无纹理可言的,所以纹理是二维的。在纹理分析中使用到的是傅立叶变换,主要原因是图像傅立叶变换的能量谱能在一定程度上反映某些特征。设纹理图像为f(x,y),其傅立叶变换可由下式表示:
F(u,v)=∫∫f(x,y)edxdy
其功率谱定义为:
|F(u,v)|=F(u,v) F(u,v)
其中F(u,v)为F(u,v)的共轭复数。功率谱F(u,v)反映了整个的性质。由此可知:如果一个幅图像的纹理较粗糙,即图像的灰度变化很少或较慢,则在小(u+ v)的值处|F(u,v)|有较大值;如果一副图像的纹理较细腻,即图像的灰度变化频繁或较快,则在大的(u+ v)值处|F(u,v)|应有较大的值。因此,如果想要检测纹理的粗糙、细腻性质,一个有用的度量就是|F(u,v)|随(u+ v)变化的情况。
如果把傅立叶变换用极坐标形式表示,则有F(r,θ)的形式。考虑到原点为r的圆上的能量为
Φr=∫| F(r,θ)|dθ
经实际纹理图像的研究表明:在纹理较粗的情况下,能量多集中在离原点近的范围内,而在纹理较细的情况下,能量分散在离原点较远的范围内。由此可得出如下结论:如果r较小,Φr很大;r很大时Φr反而较小,则说明纹理是粗糙的;反之如果r变化对Φr的影响不是很大时,则说明纹理是比较细的。
4.6颜色特征提取
特征提取的主要任务是把图像的颜色特征提取出来存入图像特征数据库,以此特征作图像检索的主要依据,主要步骤为:
(1)将RGB颜色空间转换为适合肉眼分辨的HSV颜色空间;
(2)HSV空间的非等间隔量化;
(3)根据量化后的图像统计得到直方图[5]。
4.6.1 RGB颜色空间转换HSV颜色空间
颜色被公认为是图像检索中最有价值的底层特征,因此颜色就成为了图像检索中用的最多的视觉特征。对于复杂背景图像,颜色特征具有相对良好的鲁棒(robust)性,并且不受图像尺寸和方向的影响。常用的颜色空间有:RGB、HSI、HSL、HSB、CMYK、HSV等,采用何种颜色空间并没有统一的标准,对于RGB颜色模型是用红、绿、蓝三种基色来表示各种颜色,但RGB颜色空间不能很好的与感知上的颜色空间结合起来,较好的是HSV模型,因此在这里需要RGB到HSV的转换。对于HSV颜色空间,又称为六椎体模型,给定RGB颜色空间的值(r,g,b),其中r,g,b∈[0,255],则变换到HSV空间的H,S,V值,可设v'=max(r,g,b),定义:{r',g',b'}为:
r'=(v'-r)/(v'-min(r,g,b))
g'=(v'-g)/(v'-min(r,g,b))
b'=(v'-b)/(v'-min(r,g,b))
则有v=v'/255,s=(v'-min(r,g,b))/v'
h’= 5+b’ , r=max(r,g,b)且g=min(r,g,b);
1-g’, r=max(r,g,b)且g=min(r,g,b);
1+r’ g=max(r,g,b);
3-b’, g=max(r,g,b)且b=min(r,g,b);
3+g’, b=max(r,g,b)且r=min(r,g,b)
5-r’, 其他
h=h'×60
这里r,g,b∈[0,255],h∈[0,360],s∈[0,1],v∈[0,1]
4.6.2HSV空间的非等间隔量化
将h,s,v 3个分量按人的颜色感知进行非等间隔的量化,从对颜色模型的大量分析和计算。可把色调h分成16份,饱和度s和亮度v分别分成4份,并据色彩的不同范围进行量化,量化后的色调、饱和度和亮度值分别为H,S,V。
H= 0, 如果h∈(345,15]; S= 0, 如果s∈(0,0.15];
1, 如果h∈(15,25]; . 1, 如果s∈(0.15,0.4];
2, 如果h∈(25,45]; . 2, 如果s∈(0.4,0.75];
3, 如果h∈(45,55]; . 3, 如果s∈(0.75,1];
4, 如果h∈(55,80];
5, 如果h∈(80,108];
6, 如果h∈(108,140];
7, 如果h∈(140,165];
8, 如果h∈(165,190]; V= 0, 如果v∈(0,0.15];
9, 如果h∈(190,220]; . 1, 如果v∈(0.15,0.4];
10, 如果h∈(220,255]; . 2, 如果v∈(0.4,0.75];
11, 如果h∈(255,275]; . 3, 如果v∈(0.75,1];
12, 如果h∈(275,290]; .
13, 如果h∈(290,316];
14, 如果h∈(316,330];
15, 如果h∈(330,345];
上面的h,s,v取值区间均为前开后闭。量化完成后,我们把颜色空间划分为Lh×Ls×Lv个相似色空间,其中Lh、Ls、Lv分别表示三个量化级数,把3个颜色分量合成为一维特征矢量,即L=H×Ls×Lv+S×Lv+V其中Ls和Lv分别是S和V的量化级数,取Ls=2,Lv=3因此上式可表示为:L=6H+3S+V这样H,S,V三个分量就在一维矢量上分布开来。其中L的取值范围是[0~35],即根据量化后的图象可以统计得到36柄的一维直方图。
4.6.3提取颜色直方图
颜色直方图是颜色信息的函数,它表示图像中具有同颜色级别的像素的个数,其横坐标是颜色级别,纵坐标是颜色出现的频率(像素的个数)。因此颜色直方图(color histogram)是用来表达颜色特征最常用的手段。颜色直方图的定义如下:设图像I大小为w*h的图像,其中图像I中的颜色量化值分别为C1,C2,…Cn。对于象素点p=(x,y)∈I,令C(p)表示其颜色,即I{p│C(p)=C}。那么对于颜色Ci,i∈m,图像I的直方图为: HCi (I)=‖ICi‖。为了保证尺度不变性,一般对直方图进行标准化:hCi =Pr[p∈ICi ]= HCi (I)/w*h。
常用的颜色直方图有很多。我们在这里用到的为局部直方图。
局部颜色特征区域颜色直方图和区域颜色分布特征,后者包括区域颜色矩(主要是均值和方差)、区域颜色极大、极小值等。下面给出局部直方图的定义和处理方法:从广义角度,颜色直方图可定义为某个图像、区域或目标中颜色的分布情况描述,其定义形式为:
Hc(k)= ∑ (x,y)∈R h(C(x,y)) R为图像区域。
由于区域颜色分布具有局域性,有的颜色出现的很少,为了简化直方图描述,有必要对其进行优选。一种基于阀值的颜色集(color set)的思想是针对颜色直方图中每个颜色项k,引入阀值T:
bk={ 1 如果≥T 0 其他
显然,bk是否为1可以判断区域内颜色k在处理时是否可以忽略。如果颜色k的像素数目小于给定的某个阀值,该颜色将被忽略。这样就在一定的程度上简化了直方图后期索引及匹配的工作量。
5.讨论
本次课题研究取得较为令人满意的结果,为了得到相关信息,我们翻阅许多图像处理和MATLAB程序的资料。通过小组的分工努力,把上述的流程一一做完,最终通过MATLAB程序,实现了彩色图像的部分特征的提取。但是本次课题还存在很多的不足,比如在颜色特征提取部分,还有更多的算法有待更深入的研究。
6.结果分析
对一般的彩色图像,通过图像的预处理和图像分析,可以提取到图像的部分特征,如颜色、形状、纹理特征等,对图像检索和彩色图像处理技术有很大的帮助。测试结果表明,本设计充分利用MATLAB中已有的函数库,使整个程序设计简单易行。
【参考文献】
[1] 余成波. 数字图像处理及MATLAB实现. 重庆大学出版社. 2003.6 P18 P223
[2] 王洪元. MATLAB语言及其在电子信息工程中的应用. 清华大学出版社. 2004.12
[3] 贺兴华, 周媛媛, 王继阳, 周晖. MATLAB7.x图像处理. 人民邮电出版社. 2006.11
[4] 许飞, 施小红. MATLAB应用图像处理. 西安电子科技大学出版社. 2002.5 P160-161
[5] 巩艳华, 朱爱红, 代凌云. 福建电脑 ( Fujian Computer). 2007年5月
[6] 于铂, 郑丽敏, 田立军. 计算机工程( Computer Engineering). 2006年 03期
[7] 陈丽, 苏海锋,王岩,孙玉梅.计算机与信息技术 ( Computer & Information Technology). 2006年 Z1期
[8] 黄志开. 彩色图像特征提取与植物分类研究[D]. 中国优秀博硕士学位论文全文数据库 (博士). 2006.04
【彩色图像特征提取研究(一)】相关文章:
医学图像领域中数字图像处理的应用论文04-19
谈地理图像投影导学法08-21
对汽车维修服务业的一项研究(一)05-12
高一化学研究性学习开题报告09-01
课题研究开题报告10-26
定向增发机制研究06-03
刑罚裁量的原则研究06-04
文学鉴赏研究论文11-03
单位自首的处罚研究06-13
舞蹈艺术的特征研究10-26