单步扫描细化算法的制作方法

文档序号:7659864阅读:379来源:国知局
专利名称:单步扫描细化算法的制作方法
技术领域
本发明针对一种细化算法,更具体说,是针对单步扫描的细化算法。
在图像处理、模式识别、特征检测、手写识别、和伪钞识别中,通用细化算法。细化算法的目标,是寻找一个二进制的图像,以获得一个“骨架(skeleton)”,由此可以抽取其特征,可以简化其图像表达方式,或可以节省其存储空间。
一个例子示于

图1(a)和1(b)。图1(a)的字符是粗的每一笔划都有好几个像素宽。图1(b)的字符是细的,宽度为一个像素,但保持图1(a)字符的主要特征,所以它还能被识别是一个“5”(不是一个“2”,“A”,或别的字符)。在图像处理或模式识别时,常常宁可取图1(b)的较细的字符而不是图1(a)的较粗的字符,因为它保持图像的主要特征,占较小的存储器,同时又因笔划宽度基本恒定(一个或两个像素宽)而更易于识别。从图1(a)到图1(b)的变换名为细化处理。
在大多数现实世界的应用中,各种图像远比此例子复杂,因此,细化算法已被研究多年。细化算法的两个基本要求是1)保留代表原始图像的主要特征,和2)保持其连通性。
大多数常规细化算法的关键步骤,是检测边缘像素,然后逐一剥去边缘像素。这些常规算法需要扫描图像若干次(根据图像的“宽度”),且对每个像素重复该算法。图2画出这些常规算法是如何工作的。常规细化算法剥去图形的边缘像素。如果图像是宽的,这一剥去过程必须从左上方到右下方重复若干次。因为细化的图形在某些地方仍有两个像素宽,所以图2的结果还可能不被接受。
这种常规方法公开在下面的文章中Lam L.and Suc C.Y.,“Adynamic shape reserving thinning algorithm,”Signal Processing,1991,22(2)199-208。此方法的根据是J.Hilditch,“Linear Skeletonfrom Square Cupboards,”In Machine Intelligence IV.B.Meltzer andD.Michie,Eds.University press,Edinburgh,pp.403-420(1969)。
如上所述,因为对整幅图像扫描一次,则图形中线条宽度每侧减小一个像素,所以整幅图像的重复扫描次数约为W/2,这里W是包含在图像中最大线条的宽度。这个过程画在图3A-3D上。在这种情形下,为了线条的细化,要求扫描点P的次数为P=SxW2]]>这里S是整幅图形内扫描点的数目(I×J);W/2是扫描整幅图像的重复次数;和W是整幅图像中最大线条宽度。
即使在图像中只有一个区域有粗的线条或一个实心的黑色区域,也要求该算法为这样一个区域而重复扫描整幅图像,为此要求大量的处理时间。
第二类常规方法包括从内侧像素到边沿像素的处理像素方式,以便找出中心像素。这种第二类技术包括最大的正方形(MS)和最大的圆形(MC)两种技术,例如在下面的论文中有说明Abairid M.R.,Martin G.and Suen C.Y.,“Tracing Center-lines of Digital PatternsUsing Maximal-Square and Maximal-Circle Algorithm,”Conf.OnVersion Interface′90,Nova Scotia,1990,76-79。因为对每一个像素都必须进行相同的识别,所以这种第二类常规技术并不节省处理时间。
第三类常规方法包括对每一扫描线搜索每个分支的中心像素,连接这些中心像素,以便获得图像的骨架。这种第三类方法常常不能保持图像的连通性。
本发明针对一种细化算法,更具体说,是针对非迭代的细化算法,它对靠近骨架像素的不同像素,分配不同的权重,并除去不可能的像素。本发明既不需要对某一像素进行迭代,也不需要对每一个像素都检测;因此,减少了处理所需要的时间。本发明还可以结合某种填充算法使用。对各种不同的二进制图形的实验结果表明,本发明与其他常规算法相比,是一种高速的技术,且可以获得良好的骨架形状。
图1A和1B画出普通的字符。
图2画出组成一个字符的像素集合,它可以用常规细化算法处理。
图3A-3D画出获得图像骨架的一种常规技术。
图4画出本发明一个实施例的细化算法的流程图。
图5画出在本发明的一个实施例中本发明的方向检测特征。
图6(a)-6(c)画出本发明一个实施例中的权重分配特征。
图7画出用于识别“无需识别”像素(NIP)的示例性规则。
图8(a)-8(e)画出用某种填充算法的内插。
上面已概略指出,本发明针对一种新的细化算法,它在细化过程中,对靠近骨架像素的不同像素,分配不同的权重,并除去不可能的像素。本发明既不需要对像素进行迭代,也不需要对每一个像素都检测;因此,减少了处理所需要的时间。某种填充算法还可以结合本发明的细化算法使用,以产生更优良的结果。对各种不同的二进制图形的实验结果表明,本发明与其他常规算法相比,可以获得高速和良好的骨架形状。
在一个示例性实施例中,本发明的一般算法示于图4。在步骤20,算法开始。在步骤30,不论扫描是不是完成,都要作出判定。如果未完成,在步骤40,算法继续进行至下一个像素。如果扫描已经完成,算法转至填充算法80,然后在步骤90完成。在步骤40和50,分析下一个像素,确定它是不是一个骨架像素。如果下一个像素是骨架像素,它在步骤60被保留,并在步骤70,从该像素预测下一个骨架像素。如果步骤50的像素不是骨架像素,算法转至步骤30,以便再次确定扫描是不是完成。
在本发明的一个实施例中,单步扫描细化算法的操作,将在下面结合图5-8作更详细的说明。本算法的第一个操作步骤包括方向的检测。假定有一个字符,它由若干笔划组成。如果在笔划中存在一个大小可变的圆,那么此内接圆的连接中心点应当是骨架的一部分。但是,笔划连接的连通性可能丢失,因而可能需要内插。本发明用识别有方向的像素来缓解这个问题(在图5的例子中,用图形的内边缘到外边缘的八个方向,而不是识别图形中每一个像素)。
本发明算法的第二个操作步骤,是权重的分配。具体说,图形中的像素分为三类骨架像素(SP)、“无需识别”像素(NIP)、和“无标志”像素(NFP)。从左上方到右下方扫描各个像素,如果像素是一个NIP或SP,那么,本算法继续识别下一个像素。如果此像素是一个NFP,本算法根据一种内接圆算法进行细化。如果下一步该像素是一个SP,且在其八个相邻像素中有另一个SP,那么,按照骨架的方向,把权重值分配给八个相邻像素。此权重是骨架线条的正切值,如图6(a)-6(c)所示。
因为扫描是从左上方到右下方,所以下一个“可能是骨架”的像素是U、V、W、X、和Y。按照骨架线条的方向,这五个像素中的三个可能是骨架像素,如下面举例说明的预测集合(1)所示。数值α是骨架线条和水平线的夹角,集合中各元按权重排列。 “无需识别”像素(NIP)的确定,是根据·如果CS={WVX}或{WXV}则按顺序W,V,X或W,X,V识别下一个可能的骨架像素,并且沿U和Y方向(水平)且在内接圆之内的像素,被分类为“无需识别”像素(NIP)。
·如果CS={UVW}或{YXW}则按顺序U,V,W或Y,X,W识别下一个“可能是骨架”的像素,并且沿W方向(竖直)且在内接圆之内的像素,被分类为“无需识别”像素(NIP)。
·如果CS={VWU}或{VUW}则按顺序V,W,U或V,U,W识别下一个“可能是骨架”的像素,并且沿X方向(斜率为1)且在内接圆之内的像素,被分类为“无需识别”像素(NIP)。
·如果CS={XWY}或{XYW}则按顺序X,W,Y或X,Y,W识别下一个“可能是骨架”的像素,并且沿V方向(斜率是-1)且在内接圆之内的像素,被分类为“无需识别”像素(NIP)。应当指出,内接圆的大小可以从当前的骨架像素获得。图7画出识别“无需识别”像素(NIP)的示例性规则。
下面更详细说明图4步骤80中的填充算法。在某些连接中或在不规则的地方,可能遗漏骨架像素(SP)。可以用诸如图8(a)-8(e)所示的填充算法,插入任何遗漏的骨架像素。
图8(a)画出两个插入的像素。图8(b)画出向上的插入方向。图8(c)画出向下的插入方向。
使用常规的填充算法,图8(d)画出的两个像素,可以如图8(c)所示那样填充。如图8(d)和(e)所示,填充的方向由五个骨架像素决定,并且当边缘遇到另一个骨架像素,或与另一个骨架像素连接时,填充终止。
如上所述,本发明是针对一种新的更快的细化算法,它在细化过程中,对靠近骨架像素的不同像素,分配不同的权重,并除去不可能的像素。本发明的算法既不需要在逐个像素的基础上进行迭代,也不需要对每一个像素都检测。因此,本算法大大地减小处理所需要的时间。本发明的算法还可以结合常规的填充算法使用,以获得更好的结果。对各种不同的二进制图形的实验结果已经表明,本发明的算法比其他常规算法更快,且获得更好的骨架形状。一般说来,本发明的算法,至少比常规算法节省三分之二的时间,并得到良好的细化结果。
虽然本发明是按一种方法来说明的,但本发明可以在任何常规的计算硬件装置上实现。此外,上述细化算法可以驻留在能运行该算法的计算硬件装置内,可以通过普通的物理介质装载进计算硬件装置内,或者,可以通过传播信号下载于计算硬件装置内。
显而易见,在此被描述的本发明可以有许多变化。这种变化不能认为偏离本发明的精神和范围,因此,所有这种对本领域熟练人员是显而易见的改变,都将包括在下述权利要求书的涵盖范围之内。
权利要求
1.一种非迭代的扫描细化方法,包括扫描图像中的像素;确定此像素是不是骨架像素,“无需识别”像素,或“无标志”像素;如果此像素是骨架像素或“无需识别”像素,则沿左上方到右下方继续到下一个像素;如果此像素是一个“无标志”像素,则细化此“无标志”像素;如果此像素是一个骨架像素,则确定与此像素相邻的任何像素是不是骨架像素;和如果与此像素相邻的任何像素都是骨架像素,则按照骨架方向,对与此像素相邻的各个像素进行权重;对每一个像素重复上述步骤,产生此图像的一个细化图像。
2.按照权利要求1的方法,其中“无需识别”像素是用一个预测集合识别的。
3.按照权利要求1的方法,其中为把每个像素分类,只需一次扫描迭代。
4.按照权利要求1的方法,其中为产生此图像的细化图像,只需一次扫描迭代。
5.一种非迭代的扫描细化方法,包括扫描一幅图像的一个像素;确定此像素是不是一个骨架像素;如果此像素是一个骨架像素,则对与此骨架像素相邻的各个像素分配不同的权重,以便预测其他骨架像素和通过细化除去不需要的像素;对每一个像素重复上述步骤,产生此图像的一个细化图像。
6.按照权利要求5的方法,其中,如果此像素不是一个骨架像素,那么,它或者是一个“无需识别”像素,或者是一个“无标志”像素。
7.按照权利要求5的方法,其中“无需识别”像素是用一个预测集合识别的。
8.按照权利要求5的方法,其中为把每个像素分类,只需一次扫描迭代。
9.按照权利要求5的方法,其中为产生此图像的细化图像,只需一次扫描迭代。
10.一种非迭代的扫描细化设备,包括用于扫描一幅图像中一个像素的处理器;确定此像素是不是一个骨架像素,一个“无需识别”像素,还是一个“无标志”像素;如果此像素是一个骨架像素或一个“无需识别”像素,则继续沿左上方到右下方确定下一个像素;如果此像素是一个“无标志”像素,则细化此“无标志”像素;如果此像素是一个骨架像素,则确定与此像素相邻的任何像素是不是骨架像素;和如果与此像素相邻的任何像素都是骨架像素,则按照骨架方向,对与此像素相邻的各个像素作权重;对每一个像素重复上述操作,产生此图像的一个细化图像。
11.按照权利要求10的设备,其中“无需识别”像素是用一个预测集合识别的。
12.按照权利要求10的设备,其中为把每个像素分类,只需一次扫描迭代。
13.按照权利要求10的设备,其中为产生此图像的细化图像,只需一次扫描迭代。
14.一种非迭代的扫描细化设备,包括用于扫描一幅图像中一个像素的处理器;确定此像素是不是一个骨架像素;如果此像素是一个骨架像素,则对与此骨架像素相邻的各个像素分配不同的权重,以便预测其他骨架像素和通过细化除去不需要的像素;对每一个像素重复上述操作,产生此图像的一个细化图像。
15.按照权利要求14的设备,其中,如果此像素不是一个骨架像素,那么,它或者是一个“无需识别”像素,或者是一个“无标志”像素。
16.按照权利要求14的设备,其中“无需识别”像素是用一个预测集合识别的。
17.按照权利要求14的设备,其中为把每个像素分类,只需一次扫描迭代。
18.按照权利要求14的设备,其中为产生此图像的细化图像,只需一次扫描迭代。
19.按照权利要求1的方法,其中所述方法用包含在某种介质上的计算机程序执行。
20.按照权利要求19的方法,其中的介质是一种物理介质和一种传播的信号。
21.按照权利要求5的方法,其中所述方法用包含在某种介质上的计算机程序执行。
22.按照权利要求21的方法,其中的介质是一种物理介质和一种传播的信号。
全文摘要
本发明针对一种细化算法,更具体说,是针对一种非迭代细化算法,它对靠近骨架像素的不同像素,分配不同的权重,并除去不可能的像素。本发明既不需要对某一像素进行迭代,也不需要对每一个像素都检测;因此,减少了处理所需要的时间。本发明还可以结合某种填充算法使用。对各种不同的二进制图形的实验结果表明,本发明与其他常规算法相比,是一种高速的技术,且可以获得良好的骨架形状。
文档编号H04N1/387GK1336621SQ0012197
公开日2002年2月20日 申请日期2000年7月27日 优先权日2000年7月27日
发明者吴晓芸 申请人:朗迅科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1