版权归原作者所有,如有侵权,请联系我们

[科普中国]-图像细化

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

国内外发展及应用现状

细化是将图像的线条从多像素宽度减少到单位像素宽度过程的简称,一些文章经常将细化结果描述为“骨架化”、“中轴转换”和“对称轴转换”。在电脑技术发展的早期,人们就意识到用计算机进行图像识别的可能,随之激发了大量的图像数据压缩的方法,从它的初期开始,就有发表近300篇关于这个课题的各种方面的论文,其最主要的方法就是减少图像的像素数,之后细化方法被广泛研究与应用。很多细化算法的学者对细化概念做了定义,将骨架定义为从图像线条的内部传播的波阵面的结果,骨架就是对边波阵面交集的轨迹,它作为一个概括性的理论被大多数学者所接受,图像中最外层的像素被连续的移除直到剩下骨架像素,但同时要保证骨架的连通性。其中有学者将骨架定义为图像线条的中心,使用这个骨架化定义可以精确地重建最初始的图像和重新描绘出它们。因为细化是模式识别领域的主要任务或本质要求之一,所以细化或骨架化算法的设计是一个非常活跃的研究领域。

20年前,自从这种方法第一次被提出,细化就成了模式识别领域的重要处理步骤之一。它已经被用作检查印刷电路板,染色体分析,对地裂缝图的检查和对指纹的分类。它最初应用在光学字符识别中,近年来主要应用在智能复印和传真发送系统中,另外一个应用和发展是在地图数据压缩中。总的来说,这些应用程序使用细化方法将数字图像的线条简化为单位像素宽度的中心线,使对象能够被更简单的数据结构表示来简化数据分析,或者减少数据存储和对传输设备的要求。基本上细化的所有目的为减少冗余信息,留下足够的有用信息来进行拓扑分析、形状分析或者原始对象的还原。对于本来就是线状图形的对象,细化方法允许骨架的大小、形状和表面噪声几乎与原图像保持一致。在这种情况下,细化的目的是改善图像,而不仅仅是消极的进行数据压缩。在模式识别中细化的重要性是显而易见的,它的重要性被过去的40年中的大量的细化算法所反映出来。算法的大规模发展支撑了这个观点,到现在为止,细化算法还没有被充分的发展和完善,未来它将比刚开始出现满足一般细化要求时更复杂。设计一个连续细化算法的大部分困难在于必须要充分考虑到图像的总体性质,人们都知道,连通性是一个全局属性,这是计算速度问题的根源。虽然发现并保留骨架线的端点只是个局部问题,但定位它们也是一个全局问题。除此之外,判断线上的一个像素点是不是毛刺噪声,它该被保留还是删除,这是非常重要的。不同算法对这个问题的解决方法是不同的,有些方法可能导致整个分支的删除或者将噪声细化。所以如何在改善细化质量的同时,用最少的迭代次数得到完全细化的图像并且缩短细化时间,这是现在线划图像细化研究的重点。

研究意义用骨架来表示线划图像能够有效地减少数据量,减少图像的存储难度和识别难度。目前线划图(包括纸质地图、线画稿、手绘图等)的存储是非常麻烦的,存储和使用起来都很不方便。例如,一张A4大小的线划图存储需要IM的容量,另外一些比较严重的问题就是数据的修改、更新和显示。矢量化是解决这些问题的方法,但这些图的宽度经常是大于一个像素的,这会导致矢量化结果有非常大的问题,为了解决这些问题,细化就成了模式识别和矢量化的先决条件。

细化技术的一个主要应用领域是位图矢量化的预处理阶段,相关研究表明,利用细化技术生成的位图的骨架质量受到多种因素的影响,其中包括图像自身的噪声、线条粗细不均匀、端点的确定以及线条交叉点选定等,因而对线划图像进行细化从而生成高质量骨架的方法进行研究具有现实意义。

一般要求1、保证细化后骨架的连通性;

2、对原图像的细节特征要保持的较好;

3、细化的结果是原线条的中心线;

4、线条的端点保留完好;

5、线条交叉点不能发生畸变;

6、细化所用时间不能太长。

存在的问题图像细化是提取能表达图像拓扑结构的骨架像素的方法,为计算机系统进行数据压缩和识别创造条件,但要注意三点:

1、并非所有形状的图像都可以或者应该细化,细化比较适合由线条组成的物体,如圆环,但实心圆不适合细化;

2、任何一种细化方法都不能适用所有的情况;

3、细化是提取骨架的过程,所提取的骨架必须有实质的意义,而不是由所使用的细化算法来定义骨架。

在细化中,理想状态是在对图像像素进行连续移除后形成一个具有连通性的骨架。达到这个目的必须解决三个问题:

1、保持连通性;

2、保留端点;

3、确保像素点是对称的被移除,目的是使算法能各向同性。1

算法根据算法处理步骤的不同,细化算法分为迭代细化算法和非迭代细化算法。根据检查像素方法的不同,迭代细化算法又分为串行细化算法和并行细化算法。

非迭代算法非迭代细化算法是不以像素为基础的,它们通过一次遍历的方式产生线条的某一中值或中心线,而不检查所有单个像素,即这种算法是一次即产生骨架;如基于距离变换的方法。游程长度编码细化等。这类算法中最简单的方法是通过扫描确定每段线的中心点,然后把它们连接成一副骨架,这种算法拥有计算机处理速度的优势,但是会有容易产生噪声点的缺陷。

迭代算法即重复删除图像边缘满足一定条件的像素,最终得到单像素宽带骨架。

迭代方法依据其检查像素的方法又可以再分成:

串行算法:

在串行算法中,通过在每次迭代中用固定的次序检查像素来判断是否删除像素,在第n次迭代中像素p的删除取决于到目前为止执行过的所有操作,也就是必须在第(n-1)次迭代结果和第n次检测像素的基础之上进行像素删除操作;即是否删除像素在每次迭代的执行中是固定顺序的,它不仅取决于前次迭代的结果,也取决于本次迭代中已处理过像素点分布情况。

并行算法:

在并行算法中,第n次迭代中像素的删除只取决于(n-1)次迭代后留下的结果,因此所有像素能在每次迭代中以并行的方式独立的被检测;即像素点删除与否与像素值图像中的顺序无关,仅取决于前次迭代效果。