发明内容
基于上面所述,本发明的目的在于,提供一种简单、易实现的票据图象处理过程中的版面识别方法。
为达到上述目的,本发明提供的票据图象处理过程中的版面识别方法,包括:
输入待识别版面的图象,对该图象进行版面预处理;
利用预处理后图象中的特征线条或特征文字与预先存储的每一个标准版面的标准线条或标准文字进行匹配,根据匹配可信度确定待识别版面。
所述利用预处理后图象中的特征线条或特征文字与预先存储的所有标准版面的标准线条或标准文字进行匹配的步骤可以包括:
在预处理后的图象中查找特征线条;
判断查找到的特征线条是否足够,如果足够,利用所述特征线条与预先存储的所有标准版面的标准线条进行匹配;否则,在预处理后的图象中查找特征文字,利用所述特征文字与预先存储的所有标准版面的标准文字进行匹配。
所述利用预处理后图象中的特征线条或特征文字与预先存储的所有标准版面的标准线条或标准文字进行匹配的步骤也可以包括:
在预处理后的图象中查找特征文字;
判断是否查找到特征文字,如果找到,利用所述特征文字与预先存储的所有标准版面的标准文字进行匹配;否则,在预处理后的图象中查找特征线条,利用所述特征线条与预先存储的所有标准版面的标准线条字进行匹配。
在上述步骤中,所述查找特征线条包括按照下述步骤查找横线:
11)对待测试版面进行逐行逐点扫描,当扫描到黑点b_dot时,转步骤12),当扫描到白点w_dot时,转步骤13);
12)判断点b_dot是否为一条线段左端点,如果是,则转步骤11),并开始进行找线操作;否则,
判断点b_dot是否为一条线段中的一点,如果是,将该点记入线长,转步骤11)继续扫描下一个点;否则,
判断点b_dot是否为一行的末尾,且不是一条线上的点,如果是,则转步骤11)进行下一行扫描;否则,转步骤15)做找线完毕处理;
13)判断点w_dot之前是否找到线,如果否,转步骤11)继续扫描后续的点;否则,
判断点w_dot是否为一条线段中断线部分的白点,如果是,转步骤14)进行断线处理;否则,
判断点w_dot是否为一条线段的结束点,如果是,转步骤15)做找线完毕处理;否则转步骤16);
14)将点w_dot作为黑点b_dot,转步骤12);
15)保存找到的线条;
16)判断待测试版面是否扫描结束,如果未结束,转步骤11)继续扫描,否则结束扫描。
在步骤13)中,按照下述步骤判断点w_dot是否为一条线段中断线部分的白点:
在断线长度允许的范围内,以当前行为基准线,上下偏移指定行,从该白点的横坐标开始查找黑点,若在这个范围内没有找到黑点,则判定该点是一条线段的结束,否则判定该白点为一条线中的断线部分。
在步骤16)判断待测试版面是否扫描结束前,还包括判断线段合格性的步骤。
所述查找特征线条的操作,还包括按照下述步骤查找竖线:
21)将待测试版面翻转90度,以使竖线转变为横线;
22)查找横线;
23)将所述横线的坐标转换为竖线的坐标。
在根据匹配结果确定待识别版面的步骤前还包括:确定待识别版面的匹配点。
采用下述步骤确定待识别版面的匹配点:
确定所有横线与竖线的交点;
在上述交点中,选择横坐标与纵坐标之差最小的交点作为匹配点。
基于上面所述,按照下述步骤实现所述特征线条与预先存储的每一个标准版面的标准线条的匹配:
31)读取预先存储的标准版面;
32)以匹配点为标准,计算待测试版面与标准版面中的横线匹配率,以及计算待测试版面与标准版面中的竖线匹配率;
33)根据所述横线匹配率和竖线匹配率确定对该标准版面的匹配可信度。
确定待测试版面与标准版面中的横线匹配率按照下述步骤进行:
41)计算待测试版面与标准版面的累计横线匹配率;
42)横线匹配率=累计横线匹配率×2/(测试版面的横线数目+标准版面的横线数目)。
所述累计横线匹配率按照下述步骤确定:
51)初始化累计横线匹配率bMatchH=0;
52)从待测试版面的横线集合中,选择一条未被选择的横线LineT,当没有可选择的横线LineT时,结束操作,否则转步骤53);
53)计算横线LineT的长度LT,以及它离匹配点OrgT的垂直距离DVT和水平距离DHT;
54)从标准版面的横线集合中,选择一条未被选择的横线LineS,当没有可选择的横线LineS时,转步骤52),否则转步骤55);
55)计算横线LineS的长度LS,以及它离匹配点OrgS的垂直距离DVS和水平距离DHS;
56)判断DVT与DVS差的绝对值a是否大于对应的设定值V或者DHT与DHS差的绝对值b是否大于对应的设定值H或者LT与LS差的绝对值c是否大于对应的设定值L,如果大于,转步骤54),否则,按照下式计算匹配率matchL:
matchL=((a/V)2+(b/L)2+(c/L)2)/3;
57)将matchL累加到bMatchH,然后转步骤54)。
按照下述步骤确定待测试版面与标准版面中的竖线匹配率:
61)将待测试版面翻转90度,以使竖线转变为横线;
62)计算待测试版面与标准版面的累计横线匹配率,以所述累计横线匹配率作为累计竖线匹配率;
63)竖线匹配率=累计竖线匹配率×2/(测试版面的竖线数目+标准版面的竖线数目)。
所述查找特征文字的步骤包括:
71)查找版面的特征匹配点;
72)读取预先存储的标准版面信息,根据所述信息在预处理后的图象中抠取指定的图象块;
73)在所述图象块中查找特征文字。
由于本发明采用以待识别版面中线条或文字为识别特征,与预先存储的每一个标准版面的标准线条或标准文字进行匹配,最后根据匹配可信度确定待识别版面的方法进行版面的识别,方法简单且容易实现,并且具有较高的版面识别效率。
具体实施方式
本发明所述方法的主要任务就是根据待识别版面包含的线条信息或文字信息对其进行识别,以确定出被识别的版面具体是什么版面,尤其适用于对票据进行识别,以提供票据处理计算机化的基础。
图1是本发明所述方法实施例的主流程图。在图1所示的流程中,描述了本发明所述方法的主要要点:对通过扫描票据得到的待识别的版面图象进行线条或文字查询,利用查询得到的特征线条或特征文字与预先存储的标准版面的标准线条或标准文字进行对比,根据对比的结果确定被识别的票据属于什么票据。根据图1的指示,要实现本发明所述的方法,首先要将根据标准票据获得的用于对待识别票据版面进行识别使用的标准信息存储起来,如存储到系统的数据库中,以作为识别对比的依据。根据所处理票据性质的不同,所述标准信息可以采用不同特征,如特征线条、特征点、以及特征文字信息等能够代表票据图象版面的特征,本实施例中的标准数据包括模板版面名称,以及模板中的所有标准横线条坐标、竖线条坐标,文字内容及坐标、匹配点等,还包括其它一些经验值,例如线条的最短长度、线条长度误差,以及线条到版面匹配点的垂直距离、水平距离及其误差范围等。
以标准信息为基础,当通过光学图象读取设备读取到待识别票据版面图象后,首先要在步骤1对所述版面图象进行识别前的预处理,以去除图象中的各种干扰噪声。然后在步骤2从系统数据库中读取版面初始化信息,即读出所存储的所有标准版面的信息,用于后续的版面识别过程中的比较。所述步骤1、2是本实施例流程的初始化步骤,提供了进行版面识别的基础,因此,在步骤3即可以进行待识别版面特征信息的查找,具体说,该步骤从待识别版面图象中找特征线条,当查找操作完毕后,在步骤4判断是否在待识别的版面上找到了足够的用于版面识别的线条,如果找到了足够的线条,说明只以找到的线条做为特征线条就可以对待识别版面图象进行正确地识别,判断出该图象标识的票据属于哪种票据。这时,进行步骤6,根据预先读取的标准版面的信息,即标准线条,和找到的特征线条,进行版面匹配操作,然后根据匹配结果在步骤8确定待识别版面,并将确定结果反馈给系统。由于待识别版面图象所标识的票据必定为所存储的标准版面票据中的一种,因此在步骤8通常能够识别出待识别版面图象属于哪种票据;如果由于扫描等原因导致版面图象识别失误,也能够在该步骤反馈其它的识别结果,如版面有瑕疵或无法识别等。如果经步骤4的判断,没有从待识别版面图象中找到足够的线条,说明待识别版面图象所标识的票据可能为无线条票据或其它情况,这时就要通过文字识别版面,因此在判断结果为找到的线条不足够时,要步骤5查找版面的特征匹配点,并且根据预先读取的标准版面信息,即以标准版面信息中的文字信息做指示,在预处理后的图象中抠取指定的图象块,并在所述图象块中查找特征文字,然后根据找到的特征文字,在步骤7进行文字匹配,即无线条版面的匹配,最后根据匹配结果在步骤8确定待识别版面,并将确定结果反馈给系统。
在图1所述的实施例流程中,叙述了首先根据特征线条进行版面识别,如果对无线条版面进行识别,再根据特征文字进行版面识别的情况,这种情况较适合对于多数票据具有线条特征情况下的票据版面识别。事实上,也可以采用另外的顺序,先根据特征文字进行版面识别,如果对有线条版面或无文字版面进行识别,再根据特征线条进行版面识别。即首先在预处理后的图象中查找特征文字,判断是否查找到特征文字,如果找到,利用所述特征文字与预先存储的所有标准版面的标准文字进行匹配;否则,在预处理后的图象中查找特征线条,利用所述特征线条与预先存储的所有标准版面的标准线条字进行匹配。需要指出的是,实际中并不局限于上述顺序。例如,可以先判断待识别版面所标识的版面性质,再决定先进行基于特征文字的识别,还是先进行基于特征线条的识别。
在图1所述的实施例流程中,步骤1所述对版面图象进行识别前预处理的目的是消除版面图象中影响其识别的缺陷,包括下述所涉及的内容。去除待识别版面图象的黑边、对待识别版面图象进行倾斜矫正、去除待识别版面图象的噪声。如果需要识别的票据为彩色票据,或者扫描后的图象具有某种灰度或者色彩,为提高识别的准确率或识别效率,还可以在预处理开始时,对待识别版面图象是否为彩色或灰度图象进行判断,如果是,将所述图象转变为黑白二值图象,即进行二值化处理。具体的二值化处理过程,用于对经过图象增强及噪声清除的彩色或灰度版面图象数据转化为只有黑、白二值的版面图象数据。具体可以采用这样的方法实现:首先进行高斯平滑滤波,以去除白点和黑点噪声,防止二值化后产生孤立的白点与黑点;其次确定整幅图象的前景与背景的灰度值,计算二值化阀值,所述阀值可以采用两种,一是全局静态阀值,二是局部动态阀值;最后根据阀值的大小重新设定整幅图象的灰度值,将灰度值大于阀值的象素点设为白点,否则设为黑点。
在本例中的待识别版面图象的预处理操作中,黑边切除是针对二值图象进行的,具体做法是,将版面水平分成上下两个区域,在每个区域内分别从左边、右边开始处理,这样整个区域可分成左上区、左下区、右上区和右下区进行处理,在每个区内采用相同的规则分别进行逐行扫描。通过扫描,对每一个所扫描的行,根据黑行的的判断规则确定该行是否为黑行,即只要该行中的连续的白点个数大于预先给定的白噪声间隙值,则该行不是黑行,否则为黑行。根据每一行的扫描结果,再根据黑边的判断规则,确定应当去除的黑边并去除。所述图象矫正,是对扫描产生的倾斜图象进行矫正。在进行图象倾斜矫正时,可以按照投影法进行,具体方法是:一、计算图象的倾斜角度,二、旋转图象。
计算倾斜角度的方法为:一、粗略搜索,通常可以在-30度至+30度范围内以步长为2度,进行搜索;二、精确搜索,在粗略搜索得到的2度范围内以步长为0.1度进行精确搜索;在角度搜索时主要是利用方向投影统计黑点数,即沿着某一个角度遍历图象,统计整幅图象中,沿该方向的每一行的黑点个数,然后利用统计得到的黑点直方图计算方差,选取方差最大的方向作为倾斜角。
所述去除待识别版面图象的噪声,是对版面图象进行滤波处理、去除图象中的背景噪声,以及增强图象。这里所述滤波去噪声,是指去除图象中不必要的线条、条纹,以及进行字符的平滑处理、淡化滤镜处理、加浓滤镜处理、清洁平滑处理和补断线处理等。所述去线条,是在图象上,即位图图象,逐行扫描判断,搜索存在的单象素宽线条,再将所有单象素宽线条按相邻规则合并成具有实际象素宽度的粗线条,然后判断该粗线条是否满足去除条件,如果满足,说明是图象识别过程中的多余线条,将其去除,直到消除满足条件的所有线条。如果在去线条过程中,将字符上的部分有效信息去除,为保证字符的完整,这时,还要进行对受损字符的修补。具体的修补过程是,扫描已去除线条的附近字符的分布情况,检测到需要修复字符的具体位置,然后按照缺损部分上下线条长度的平均长度进行修复。
所述去条纹,是将通过对图象的扫描,将一行中长度不大于给定宽度的线条去除。
所述字符的平滑处理,是指对于字符中的点分为去点和补点两个规则,对图象位图逐点进行判断,规则归纳为3×3矩阵,参考图2,该矩阵的中心点为判断点。假设该点的坐标为(I,J),(I,J)点为白点,如果其周围8个点黑点多,比如(I-1,J-1)、(I,J-1)、(I+1,J-1)、(I-1,J)、(I+1,J)都为黑点,则该点应该补为黑点;反之,(I,J)点为黑点,如果其周围8个点白点多,则认为该点为噪音点,应该去掉。
所述淡化滤镜处理,是采用腐蚀的方法消除图象中物体边界点。如果结构元素取3×3的黑点块,腐蚀将使物体的边界沿周边减少一个像素。如果两个物体之间有细小的连通,那么当结构元素足够大时,通过腐蚀运算可以将两个物体分开。腐蚀算法的表达式为:X-S=∩{X[s]|-s∈S},X为目标图象,S为结构元素。首先读入原图象中的一点(称为当前点)的像素值,取以该点为中心的3×3矩阵,如果该点为黑点,并且周围8个点不都是黑点,则该点被赋成白点,即腐蚀掉。
所述加浓滤镜处理,用于增强图象的亮度,提高图象的对比度。具体的方法用公式表达为:X+S=∪{X[s]|s∈S},X为目标图象,S为结构元素。首先读入原图象中的一点(称为当前点)的像素值,取以该点为中心的3×3矩阵,如果该点为白点,并且周围8个点不都是白点,则该点被赋成黑点,即膨胀。实际中也可以采用光线加浓的处理方法,即限定结构元素S的形状。比如向上向左膨胀处理,首先读入原图象中的一点(称为当前点)的像素值,取以该点为中心的3×3矩阵,如果该点为白点,并且左边点、左上点和上边点不都是白点(即只判断3个点),则该点被赋成黑点,即膨胀。
清洁平滑和补断线处理,其规则也归纳为3×3矩阵,该矩阵的中心点为判断点。平滑处理考虑的是去点,即黑点变白点,补断线考虑的是补点,即白点变黑点。补断线处理规则,首先判断矩阵中心点周围8个点当中黑点的个数,其次判断每个黑点位置,根据上述黑点的个数和位置决定是否将该点变成黑点;平滑处理首先考虑周围8个点中白点个数,然后考虑每个白点位置关系,根据上述白点的个数和位置决定是否将该点变成白点。
步骤3所进行的从待识别版面图象中找特征线条的过程,是本发明的关键步骤,对于大多数有线条票据的版面识别来说,依据本步骤找到的线条为特征,即可完成版面的识别。该过程包括查找横线和竖线的子过程,由于看待横线和竖线的区别只是版面的角度不同,通过版面的角度旋转即可实现横线和竖线的相互转换,因此查找横线和竖线可以基于同样的方法。具体的横线查找是以图象扫描为基础的。在对二值图象进行扫描时,可以采用从上到下,或从下到上的扫描方式逐行扫描,扫描到的图象点可能为黑点,也可能为白点。当发现一个黑点b_dot时,存在四种可能,由此对应不同的点处理方式:
1.点b_dot可能是一条线段左端点,这时开始进行找线操作;
2.点b_dot可能是一条线段中的一点,这时需要将该点记入线长变量,继续扫描下一个点;
3.若点b_dot位于一行的末尾,且不是一条线上的点,则继续进行下一行扫描;
4.若点b_dot位于一行的末尾,且是在一条上的点,则做找线完毕处理。
当发现一个白点w_dot时,也存在三种可能及对应的处理方式:
1.点w_dot之前没有找到线,这时不做处理,直接扫描后续的点;
2.点w_dot可能是一条线段中断线部分区域中的白点,这时要进行断线处理;
3.点w_dot可能是一条线段的结束点,这时找线完毕处理。
基于上述可能,采用图3所述的流程查找横线。开始找线操作前,通常应当设置线条集合变量,和当前线条变量,以对找到的线条进行保存。首先在步骤11对待测试版面进行逐行逐点扫描,当扫描到黑点b_dot时,转步骤17进行黑点处理,当扫描到白点w_dot时,转步骤13进行白点处理。如果扫描到的是黑点b_dot,在步骤17判断点b_dot是否为一条线段左端点(左端点特征为该点为黑点,前面一点是白点,因此可以通过上述特征判断点b_dot是否为一条线段左端点。),如果是,在步骤18开始进行找线操作,即开始将该点记入当前线条变量,然后转步骤11继续扫描后续点的操作;否则,在步骤19判断点b_dot是否为一条线段中的一点(在进入找线操作时,如果该点是黑点,即可判定其为一条线段中的一点),如果是,直接在步骤20将该点记入当前线条变量,然后转步骤11继续扫描下一个点;否则,在步骤21判断点b_dot是否为一行的末尾,且不是一条线上的点,如果是,说明该点可能是噪声点,与要查找的线条无关,这时则转步骤11进行下一行扫描;否则,说明点b_dot是否为一行的末尾,且是在一条线上的点,因此转步骤22做找线完毕处理。
如果扫描到的是白点w_dot,在步骤13判断点w_dot是否为一条线段中断线部分的白点,如果是,需要进行断线处理,因此在步骤15进行断线处理,本例中的断线处理是将点w_dot作为黑点b_dot,然后转步骤12进行黑点处理;否则在步骤14判断点w_dot之前是否找到线,即该点之前的点是否为一条线的结尾,如果否,说明该点为通常的白点,与线条无关,此时转步骤11继续扫描后续的点;否则,在步骤16判断点w_dot是否为一条线段的结束点,即该点前的点为一条线的点,如果是,转步骤22做找线完毕处理。
在步骤22对找到的线条进行处理,然后在步骤23判断待测试版面是否扫描结束,如果未结束,转步骤11继续扫描,否则结束扫描,进行待识别版面的后续处理。
本例中,按照下述步骤判断点w_dot是否为一条线段中断线部分的白点:在断线长度允许的范围内,以当前行为基准线,上下偏移指定行,从该白点的横坐标开始查找黑点,若在这个范围内没有找到黑点,则判定该点是一条线段的结束,否则判定该白点为一条线中的断线部分。
步骤22的线条处理,是对线段进行合格性的判断,如果找到的是合格的线条,将其保存到线条集合变量中,同时保存的还包括线条的其它特征信息,如线条的长度、坐标等参数,否则放弃该不合格的线条。本例中对线条合格性的判断通过与经验值的比较完成,例如,预先设定短横线条的长度经验值,如9比特,以及长横线条的长度经验值,如120比特。在后续程序的竖线查找中,也要依据预先设定的竖线条的长度经验值,如70比特,进行比较,从而完成竖线合格性的判断。步骤22的主要作用是去除版面图象中字母或汉字中的噪声线条,便于后续识别。
当横线条查找完毕后,就开始查找竖线条,首先将待测试版面翻转90度,以使竖线转变为横线,然后按照上述横线查找方法进行横线的查找,最后将本次查找过程产生的线条集合中的横线的坐标转换为竖线的坐标,从而使该集合中的所有横线转化为竖线。参考图4。假设图像的宽为w,高为h,旋转前和旋转后图像四个角的坐标如图所示,如果在旋转后找到的横线的纵坐标为a,则转换为位图竖线的横坐标也为a。
事实上,如果所识别的票据图象中包括斜线,而且在识别过程中需要斜线用于版面识别,只需将版面翻转适当的角度即可进行斜线的查找,从而完成通过斜线进行版面识别的过程。
在步骤4中,判断是否在待识别的版面上找到了足够的用于版面识别的线条,这样就能得知以所找到的线条为特征能否对待识别版面进行正确识别。本例中,所述足够的线条为至少2条以上的横线和2条以上的竖线。
在步骤6的版面匹配操作前,还要确定待识别版面的匹配点。这个匹配点可以由系统在扫描票据图象时确定,也可以根据找到的横线条和竖线条确定,具体的方式应与标准模板匹配点确定一致。本例中选择后一种方式,具体方法为:首先确定所有横线与竖线的交点,然后在上述交点中,选择横坐标与纵坐标之差最小的交点作为匹配点。这样,在利用找到的线条作为特征线条与预先存储的每一个标准版面的标准线条进行匹配操作时,先读取预先存储的标准版面的标准数据,然后以匹配点为标准,计算待测试版面与标准版面中的横线匹配率,以及计算待测试版面与标准版面中的竖线匹配率,最后根据与标准版面比较得到的横线匹配率和竖线匹配率就可以确定对该标准版面的匹配可信度,由此得到对每一个标准版面的匹配可信度,通过所述可信度即可待识别的版面为哪一种版面。
本例中,按照下述步骤确定待测试版面与标准版面中的横线匹配率:首先计算出待测试版面与标准版面的累计横线匹配率,然后根据所述累计横线匹配率求得横线匹配率。具体的方法为:
横线匹配率=累计横线匹配率×2/(测试版面的横线数目+标准版面的横线数目)。
这里的关键在于首先求出所述累计横线匹配率,本例中采用下述的方法,参考图6,设LineT是待测版面中的一条待测试横线,OrgT是待侧版面的匹配点,LineS是标准模版中的一条横线,OrgS是标准模版的匹配点。
在计算累计横线匹配率时,其过程参考图5,必须首先导入待测版面和标准模版中的线条位置信息和匹配点初始位置,并设置横线匹配率变量bMatchH。按照图5,在步骤31初始化累计横线匹配率变量bMatchH,使其等于0,然后在步骤32从待测试版面的横线集合中,选择一条未被选择的横线LineT,由于这种选择可能使不成功的,即可能没有可选择的横线LineT,因此,在选择后,在步骤33判断选择是否成功,如果不成功,说明已经没有可选择的待测横线,这时直接结束操作,否则转步骤34,计算横线LineT的长度LT,以及它离匹配点OrgT的垂直距离DVT和水平距离DHT,以此作为待测试线条匹配的参数;然后在步骤35从标准版面的横线集合中,选择一条未被选择的标准横线LineS,准备进行横线匹配,由于标准横线也由可能被选择完毕,因此,要在步骤36判断选择是否成功,如果不成功,说明已经没有可选择的标准横线LineS,即标准横线已经被选择完毕,需要选择下一条待测试的横线继续进行与标准版面中的标准线条的匹配操作,因此转步骤32选择下一条待测试横线;否则在步骤37计算标准横线LineS的长度LS,以及它离匹配点OrgS的垂直距离DVS和水平距离DHS,准备与待测试线条进行匹配。具体的匹配操作从步骤38开始,在步骤38,计算DVT与DVS差的绝对值a、DHT与DHS差的绝对值b以及LT与LS差的绝对值c,然后在步骤39判断上述差值a是否大于对应的设定值V或者差值b是否大于对应的设定值H或者差值c是否大于对应的设定值L,如果上述差值中有一个大于对应设定的阈值,说明匹配是不成功的,即所匹配的待测试线条和标准线条不具有相似性,这时,就要转步骤35选择下一条标准横线继续进行匹配;如果所述差值a、b、c都不大于对应设定的阈值,说明线条的匹配成功,因此,在步骤40按照下式计算匹配率matchL:
matchL=((a/V)2+(b/L)2+(c/L)2)/3;
并在步骤41将matchL累加到变量bMatchH中,然后转步骤35选择未被选择的标准横线继续进行匹配操作。
为使继续的匹配操作具有更好的效果,在步骤41转步骤35以前还可以判断matchL是否为所有已计算出的匹配率中的最大值,如果是,将横线LineT的中点赋给OrgT,以及将横线LineS的中点赋给OrgS,然后再执行转步骤35的操作。
以上述累计横线匹配率为基础,再确定待测试版面与标准版面中的竖线匹配率时,可以采用下述步骤的操作:首先将待测试版面翻转90度,以使竖线转变为横线,再计算待测试版面与标准版面的累计横线匹配率,以所述累计横线匹配率作为累计竖线匹配率,这样得到的竖线匹配率为:
竖线匹配率=累计竖线匹配率×2/(测试版面的竖线数目+标准版面的竖线数目)。
在图1的步骤5中所述的查找特征文字的过程为:首先查找版面的特征匹配点,这个特征匹配点可以是系统确定的坐标原点,也可以是参考标准版面的标准匹配点确定的点,以该点为参照,读取预先存储的标准版面信息,根据所述信息在预处理后的图象中抠取指定的图象块,再从所述图象块中查找特征文字。在具体查找操作时,由于文字的轨迹肯定是由一系列相邻排列的黑点组成,因此可以把相邻的黑点列为一组,而且每一组相邻排列的黑点都可以用一个矩形将其包围,形成连通块,参考图7。依据该连通块,可以采用下述的文字信息提取过程:
1、确定所需要文字的大致范围;
2、抠取指定范围的图象;
3、去除线条和底纹;
4、查找所有的连通块;
5、有条件的合并一些排列紧密的连通块;
6、将指定高度和长度的连通块列为一个集合A;
7、在集合A里查找的文字信息;
值得注意的是,由于一些文字与线条和底纹是相交的,在上面的操作中,由于存在去除文字中线条和底纹的步骤,所以在去除线条和底纹的时候会将文字的部分抹掉,为了增加图象识别的准确性,还需要进行文字修补,具体的修补方法参考上面步骤1所述的相关内容。
在上述本发明的具体实施例中,在版面倾斜矫正后,只利用版面的横线信息和竖线信息。在版面找线结束时,对于横线段,需要记录它的纵坐标,左端点横坐标和右端点的横坐标,这两个横坐标之差就是横线段的长度。对于竖线段需要记录它的横坐标,上端点纵坐标和下端点的纵坐标,这两个纵坐标之差就是竖线段的长度。
在计算横线段到匹配点的垂直距离和水平距离时,计算该横线段左端点到匹配点的垂直距离和水平距离;在计算竖段到匹配点的垂直距离和水平距离时计算该横线段下端点到匹配点的垂直距离和水平距离。
例如:
1)某一横线段的纵坐标为y,左端点横坐标为x1,右端点的横坐标为xr,匹配点坐标为(x0,y0)。则横线段长度为xr-x1,线到匹配点的垂直距离为|y-y0|,线到匹配点的水平距离为|x1-x0|。
2)某一竖线段的横坐标为x,上端点纵坐标为yt,下端点的纵坐标为yb,匹配点坐标为(x0,y0)。则竖线段长度为xt-xb,线到匹配点的垂直距离为|x-x0|,线到匹配点的水平距离为|yb-y0|。
需要说明的是,在本发明的具体实施例中,采用的是横线和竖线作为版面对比的依据,实际中采用斜线特征进行版面匹配也适合本发明所述的方法,区别仅在于版面处理时所旋转的角度,因此,本发明在实际中具有更好的使用灵活性。