摘 要: 概述了数字图像处理的基本理论知识以及发展趋势,介绍了三维人体激光条纹图像的特点,并重点讲述了所选取的图像处理算法及其实现过程,对非接触式三维人体尺寸的获取有一定的参考意义。
关键词: 图像滤波; 图像分割; 图像细化
1 数字图像处理的发展趋势
1.1数字图像处理的概述
利用计算机对图像进行去除噪声、增强、复原、分割、提取特征等的理论、方法和技术称为数字图像处理[1] (Digital Image Processing)。
1.2激光条纹图像的特点
基于CCD的激光扫描系统采集得到的激光条纹图像通常有以下特点[2]:
(1)根据目标的表面和光学特征的差异,可以把目标归纳为两大类,即“明目标,暗背景”和“暗目标,明背景”。
(2)通过实验发现,由于噪声的影响,图像的统计直方图呈现多峰值且谷底不明显,如果采用固定阈值的方法分割提取激光线,效果很不理想。
(3)由于干扰噪声大,进行预处理和分割后,得到的二值化图像的噪声仍很大,若只采用通用的算法细化激光线,往往达不到测量系统的精度要求。
2 激光条纹图像的滤波
图像滤波的目的主要有两个:(1)改善图像的视觉效果,提高图像的清晰度;(2)使图像变得更有利于计算机的处理,便于各种特征分析。常用的图像滤波方法有:均值滤波、中值滤波和小波变换。
2.1 均值滤波
均值滤波也称为线性滤波,其采用的主要方法是邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其邻近的若干像素组成,求模板中所有像素的均值,再把该均值赋给当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即
该方法有效地抑制了噪声,但在均值的计算过程中,对目标的边缘点也进行了均值处理,这样降低了景物的清晰度,使画面变得模糊。
2.2 中值滤波
中值滤波是用一个窗口在图像上扫描,把窗口内包含的图像像素按灰度级的升(降)排列起来,取中间灰度值作为窗口中心像素的灰度。中值滤波的定义为:
式中Median表示取窗口中的中间值,fA(m+k,n+1)表示以像素(m,n)为中心的窗口下的各个灰度值。它的算法过程如下:
(1)选取一个正方形模板在图像中移动,将模板中心与某像素位置重合;
(2)读取模板下各对应像素的灰度值;
(3)将这些灰度值按从小到大的顺序排列;
(4)找出这些值的中间值;
(5)将这个中心值赋给对应模板中心位置的像素。
中值滤波的实质是让与周围像素灰度值的差比较大的像素改取与周围像素值接近的值,从而可以消除孤立的噪声点。它在消除噪声方面的效果明显,同时保留了图像细节,拓扑结构也没有发生改变。
2.3小波变换
小波变换是一种信号的时间-尺度分析方法,它具有多分辨率分析的特点,而且在时频两域都具有表征信号局部特征的能力,是一种窗口大小固定不变但其形状可变、时间窗和频率窗都可变的时频局部化分析方法。
小波变换适用于去除含高频信号较少的图像,能很好地抑制高斯白噪声,而且在去除噪声的同时可以较好地保留图像的细节。
分别采用均值滤波、中值滤波和小波变换方法对激光条纹图像进行滤波处理,处理结果如图1所示。通过比较可以发现,经过中值滤波后的激光条纹图像消除噪声的效果明显,图像比较柔和,且激光条纹清晰,保持了图像的细节信息,因此,该方法更适合于激光条纹图像的处理。
3激光条纹的分割
3.1 图像分割
所谓图像分割[3]就是根据匀称性的原则将图像分为若干有意义的部分(如目标和背景),使得每一部分都符合某种一致性的要求,而这时两个部分的合并都会破坏这种一致性。这也是将N×N像素的图像划分成若干个互不交叠的区域的过程,每个区域是一个像素的集合,它们具有一致的“有意义”的属性,相邻的区域之间存在着一定的属性差异,形成了区域间的边界。
图像阈值分割主要利用图像中要提取的目标物体与背景在灰度上的差异,把图像分为具有不同灰度级的目标区域和背景区域的组合。阈值化图像分割技术的基本思想是:
设f(x,y)是图像(x,y)处的灰度值,灰度级为256,如果灰度值T是图像的一个阈值,则经过阈值化处理的图像可以定义为[4]:
阈值化图像分割的关键是恰当选择分割阈值,如果阈值选得过高,则过多的目标点被误归纳为背景,反之出现相反的情况,这必然会影响分割出来的目标的大小和形状。
3.2 激光条纹图像分割
对于激光条纹图像,激光条纹分割就是要将图像中的激光线突显出来。本文即采用阈值分割法对激光条纹图像进行分割处理,处理之后的图像是一幅只含有激光条纹的黑白二值图像。
因此本文采用的是整体阈值与动态阈值相结合的方法,以改善图像分割效果。算法实现的步骤如下:
(1)将图像分割成一系列的子图像;
(2)计算出每个子图像的阈值;
(3)将计算出来的阈值构成一个矩阵,并对其进行插值,使之成为与原图像大小相同的矩阵,设得到的矩阵为Y;
(4)计算出图像的整体阈值t,构造一个与原图像大小相同的矩阵F,令F的每个元素大小均为t;
(5)构造矩阵m,m与f、y的关系如式(4)所示。以M作为图像的灰度阈值,将图像的每个像素与M进行比较。设目标物体为图像中较亮的部分,如果y的值比M大,则判为目标,反之则判为背景。
如图2所示,当k=0.1时,有背景点被判为目标;当k=0.7时,有目标点被判为背景;当取k=0.3时,激光线提取效果最好。采用该算法对图像进行分割,计算量和处理时间适中。
4 激光条纹的细化
一般地,图像中的激光条纹的宽度都超过1个像素。为了提高测量精度,必须提取一条单像素的激光中心线,即对激光条纹进行细化。激光条纹的细化就是要不断地去除曲线上不影响连通性的轮廓像素,从而获得单像素的中心骨架的过程。
4.1细化的定义和条件
通常细化可以这样定义[1]:令R是一平面集,B是它的边界,P是R中的一点,它在B上的一个最邻近的点是M,使得点P到边界B的最小距离为PM;如果P不止有一个最近邻点,则称P为R的骨架点,称所有骨架点的并为R的骨架。像素集R的骨架是按如下步骤求出的集:首先确定骨架像素和R的轮廓像素,然后移去所有不是骨架的轮廓像素,并且用这样求出的集代替R;重复上述过程,直到剩下仅由骨架像素组成的集为止。这个过程就称之为细化。激光条纹图像中细化效果影响激光扫描线三维重建的精度,所以选择细化算法显得非常重要。细化算法应满足以下几个条件:
(1)细化结果应与原图保持拓扑等效性;
(2)细化结果应保持原图中图形的连续性;
(3)细化结果应为或接近原曲线的中心线;
(4)细化后线的宽度应为单像素;
(5)细化结果对原图边界噪声不敏感。
4.2 数学形态的基本理论
数学形态学是分析几何形状和结构的数学方法,现在已经应用到数字图像处理和模式识别等领域。它的基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的,保持它们的基本形状特征,并去掉不相干的结构。基于数学形态学的细化过程主要用到的形态学运算有:膨胀、腐蚀、击中和薄化。下面将分别给出具体的定义。
在考察图像各部分之间的关系时,需要有一种收集图像结构信息的“探针”,称为结构元素。上式中A即为待细化的图像,B是结构元素。结构元素决定形态学细化算法的性能,因此如何优化确定结构元素就显得尤为重要。下面将介绍基于数学形态学细化算法的结构元素的选择。
4.3 结构元素的选择
选择两组结构单元模板共同实现基于数学形态学的细化算法,即D={D1,D2,D3,D4}和E={E1,E2,E3,E4}。D用来去掉东、北、西、南四个方向的点,E用来去掉东南、东北、西北和西南四个方向上的点,结构元素如图3所示。图中,①表示参考中心点;“1”表示目标图像上的点;“0”表示背景图像上的点;“x”既可以表示目标图像上的点,也可以表示背景图像上的点。
细化的基本思想就是同时移动上述8个模板的中心点,每当其中一个模板的中心点在目标像素点位置上击中目标图像,则该像素应该被删除,在一次迭代完成后就完成一次细化运算,这样直到某次迭代完成后没有目标像素点可以删除,迭代收敛,循环结束。由于8个模板是同时作用于图像的,因此该算法属于并行算法,算法的流程图如图4所示。
采用该算法处理如图5所示的激光条纹图像,得到的细化结果如图6所示。由图可以看出,该细化算法的效果是令人满意的。
本文讨论了激光条纹图像的特点,针对其特点采用不同的图像处理算法。通过实验比较,本文采用了中值滤波方法对图像进行预处理,采用整体阈值和动态阈值相结合的方法进行激光条纹分割,并采用基于数学形态学细化算法对激光条纹进行细化。详细介绍了上述算法的基本理论及实现过程,最后通过实例验证了算法的可行性。经过处理之后,得到宽度仅为一个像素的激光线,其连续性和拓扑等效性良好。
参考文献
[1] 何东健, 耿楠, 张义宽. 数字图像处理[M].西安: 西安电子科技大学出版社, 2003.
[2] 章毓晋. 图像工程上册-图像处理和分析[M]. 北京:清华大学出版社,1998.
[3] 阮秋琦. 数字图像处理学(第2版)[M]. 北京: 电子工业出版社, 2007.
[4] 罗军辉, 冯平, 哈力旦. Matlab7.0在图像处理中的应用[M]. 北京: 机械工业出版社, 2005.