一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于文档图像的多类型线条消除方法及系统

2022-11-28 13:57:38 来源:中国专利 TAG:


1.本发明属于文档图像处理技术领域,具体涉及用于文档图像的多类型线条消除方法及系统。


背景技术:

2.在文档图像中会出现例如表格边框、分栏线、下划线、虚线框等水平或垂直方向的直线条(以下简称线条)。可应用于需去除背景线条以提高文档图像内容识别准确率的场景,例如:在利用ocr技术识别文档图像中的文字时,图像中的线条会严重降低文字识别准确率,因此在图像处理阶段需要消除各类线条噪声数据。现有的线条检测主要采用霍夫变换算法、阈值投影法。但是,阈值投影法不能准确检测出点虚线、短实线等非连通长线条,和文字环绕型线条的位置;而霍夫变换算法进行线条检测时计算量较大,处理速度较慢。
3.因此,设计一种能准确检测出点虚线、短实线等非连通长线条,以及文字环绕型线条的位置,且计算量小、处理速度快的用于文档图像的多类型线条消除方法及系统,就显得十分重要。
4.例如,申请号为cn201810905440.x的中国专利文献描述的基于贪婪算法的文档图像中干扰线的去除方法,包括以下步骤:a.将文档图像二值化处理;b.将文字和干扰线的线条细化,得到单像素的线条;c.干扰线检测:横向单一方向扫描文档图像,识别扫描方向上的中心线,对长度较长的中心线赋予更高的权值,计算出的中心线权值若超过设定阈值,则认为其为干扰线;对于竖向干扰线,通过旋转图像或模板的方式使之变换为横向后,以相同的方法识别;检测横向和竖向的过程中也附带检测了斜向的干扰线;d.干扰线去除,通过前景像素与干扰线的距离判断其归属,将属于干扰线的像素去除,得到处理后的文档图像。虽然能够去除文档图像中较复杂的干扰线,处理准确率高、处理速度快,但不足之处在于,不能准确检测出点虚线、短实线等非连通长线条,和文字环绕型线条的位置。


技术实现要素:

5.本发明是为了克服现有技术中,现有的文档图像线条检测方式,存在不能准确检测出点虚线、短实线等非连通长线条,和文字环绕型线条的位置,且计算量大,处理速度慢的问题,提供了一种能准确检测出点虚线、短实线等非连通长线条,以及文字环绕型线条的位置,且计算量小、处理速度快的用于文档图像的多类型线条消除方法及系统。
6.为了达到上述发明目的,本发明采用以下技术方案:
7.用于文档图像的多类型线条消除方法,包括如下步骤:
8.s1,图像预处理:
9.输入待处理文档图像,通过图像预处理,输出二值化图像;
10.s2,行像素通路提取:
11.输入二值化图像和像素行,输出对应像素行的像素通路集sj;
12.s3,线条初步识别:
13.输入像素通路集sj,根据自定义的线条特征参数以及预设的水平实线判断阈值,判断像素行是否存在线条;
14.s4,遍历所有像素行:
15.重复步骤s2至步骤s3,直至遍历完所有像素行,输出所有像素行的像素通路集s;
16.s5,实线长度阈值更新:
17.输入像素通路集s,取像素通路长度数组箱线图的上四分位为新阈值;
18.s6,线条位置准确判断:
19.输入像素通路集s,根据自定义的线条特征参数以及更新的水平实线判断阈值,获取到水平线条位置集合;
20.s7,线条消除:
21.对水平线条位置进行底色填充,获得无水平线条图像;
22.s8,垂直线条消除:
23.将无水平线条图像顺时针90
°
旋转,重复步骤s2至步骤s7,再进行逆时针90
°
旋转,得到最终无线条图像。
24.作为优选,步骤s1包括如下步骤:
25.s11,输入待处理文档图像in,经过灰度变换、二值化、透视变换处理,输出二值化图像ib,像素行rj,j∈{1,

,n},rj=《v
j,1
,v
j,2


,v
j,m
》,像素列ci,i∈{1,

,m},ci=《v
1,i
,v
2,i


,v
n,i
》,其中v
i,j
表示《i,j》处的像素值。
26.作为优选,步骤s2包括如下步骤:
27.s21,遍历rj,当遇到首个非背景像素点p《j,start》时,计算首个非背景像素点与后续像素的连通性及通路,直至遇到第一个不连通的像素停止,并根据贪心算法得到与像素点p《j,start》有最长通路path的像素位置p《j,end》,最终得到一个像素通路pa《start,l》,其中start表示像素通路的开始位置,l表示像素通路的长度;
28.s22,从像素位置p《j,end》往后遍历,遇到首个非背景像素点p《j,start2》时,重复上述步骤s21操作,获得一个像素通路pa《start2,l2》;
29.s23,重复上述步骤s22操作,直至遍历完像素行rj,获得第j行的像素通路集sj。
30.作为优选,步骤s3包括如下步骤:
31.输入第j行的像素通路集sj,输出行判断结果《sj,res》,其中res分别用0,1,2,3表示对应行无线条存在,有实线存在,有细虚线存在,有点虚线存在;具体过程如下:
32.s31,实线判断:
33.s311,根据第j行的像素通路集sj,获取到像素通路长度差分数组tj,其中tj值均取绝对值;
34.s312,若第j行存在像素通路pai长度大于第一预设值th1,则进入下一步,反之则输出《sj,0》;其中第一预设值为实线长度阈值初值,th1=(图像宽度)*0.02;
35.s313,若像素通路pai或下一通路pa
i 1
的长度差分值大于tj的上四分位数或该像素通路为该行第一条像素通路,则初步判断第j行存在实线,输出判断结果《sj,1》,反之进入下一步;
36.s314,若像素通路pai的长度差分值小于tj的上四分位数,则取像素通路pa
i-1
;若像素通路pa
i-1
长度大于第一预设值th1,则初步判断第j行存在实线,输出判断结果《sj,1》,反
之则输出《sj,0》;
37.s32,细虚线判:
38.若第j行存在th2条连续的像素通路,所述像素通路长度相同且相邻通路之间的间距相同,则初步判断第j行存在细虚线,输出判断结果《sj,2》,反之则输出《sj,0》;th2为第二预设值,表示连续通路个数,th2=3;
39.s33,点虚线判断:
40.若第j行存在th3条连续的闭合像素通路,且相邻通路之间的间距均相同,则初步判断第j行存在点虚线,输出判断结果《sj,3》,反之则输出《sj,0》;th3为第三预设值,表示连续闭合通路个数,th3=5。
41.作为优选,步骤s5包括如下步骤:
42.s51,根据像素通路集s,获取到所有像素通路长度数组lt;
43.s52,取数组lt的上四分位作为水平实线判断阈值k。
44.作为优选,步骤s6包括如下步骤:
45.输入像素通路集s,输出水平线条位置集r1{《j,begin,finish》,...},其中j表示线条所在像素行;begin,finish表示线条的起始位置;具体过程方法如下:
46.s61,根据像素通路集s,取得初步判断含有实线的像素通路集q1,含有细虚线像素通路集q2,含有点虚线像素通路集q3;qi=《《sj,i》,

》;
47.s62,实线像素通路判断:
48.s621,遍历像素通路集q1,获得一行的像素通路集sj。
49.s622,根据一行的像素通路集sj,获取到像素通路长度差分数组tj,其中tj值均取绝对值;
50.s623,遍历像素通路集sj,当遇到像素通路pam《start,l》,若所述像素通路长度大于阈值k,则进入下一步,反之继续遍历sj;
51.s624,若像素通路pam或下一像素通路pam 1的长度差分值大于tj的上四分位数或该像素通路为该行第一条像素通路,则将像素通路《j,start,start l》添加至线条位置集r1中,并返回步骤s623,反之进入下一步;
52.s625,若像素通路pam的长度差分值小于tj的上四分位数,取上一条像素通路pam-1,若像素通路pam-1长度大于阈值k,则将像素通路《j,start,start l》添加至线条位置集r1中,并返回步骤s623;其中j表示线条所在像素行;start,start l表示线条的起始位置;
53.s626,重复步骤s622至步骤s625,直至遍历完q1;
54.s63,细虚线像素通路判断:
55.s631,遍历q2,获得一行的像素通路集sj=《pa1,pa2,

》。
56.s632,根据一行的像素通路集sj,获取到像素通路长度差分数组tj,其中tj值均取绝对值;
57.s633,根据tj,获取到长度差分值为0且连续的n个像素通路集合temp=《pak,pak 1,pak 2,

,pak n》,其中n》th2,th2为第二预设值;
58.s634,根据像素通路集合temp,得到m个相邻通路之间的间距均相等的连续像素通路集合line=《pab,pab 1,pab 2,

,pab m》,设定th2《m≤n,pab=《start1,l1》,pab m=《startm,lm》,将像素通路《j,start,startm lm》添加至线条位置集r1中;
59.s635,重复s632至步骤s634,直至遍历完q2;
60.s64,点虚线像素通路判断:
61.s641,遍历q3,获得一行的像素通路集sj=《pa1,pa2,

》;
62.s642,根据sj,获取到连续的n个闭合像素通路集合temp=《pak,pak 1,pak 2,

,pak n》,其中n》th3,th3为第三预设值;
63.s643,根据像素通路集合temp,得到m个相邻通路之间的间距均相等的连续像素通路集合line=《pab,pab 1,pab 2,

,pab m》,设定th3《m≤n,pab=《start1,l1》,pab m=《startm,lm》,将像素通路《j,start1,startm lm》添加至线条位置集r1中;
64.s644,重复步骤s642和步骤s643操作,直至遍历完q3。
65.作为优选,步骤s7包括如下步骤:
66.输入图像预处理后的图像ib,线条位置集r1,输出无水平线条图像ih;具体过程如下:
67.s71,对图像ib使用k-means聚类,分离出背景色;
68.s72,根据线条位置集r1,对线条所在位置进行底色填充,实现线条的消除,获得无水平线条图像ih。
69.作为优选,步骤s8包括如下步骤:
70.s81,将图像ih进行顺时针90
°
旋转;
71.s82,重复步骤s2至步骤s7,消除原有垂直线条,得到图像iv;
72.s83,将图像iv进行逆时针90
°
旋转,得到最终无线条图像i。
73.本发明还提供了用于文档图像的多类型线条消除系统,包括:
74.图像预处理模块,用于处理输入的文档图像,获得无倾斜、清晰的二值图像;
75.像素通路提取模块,用于处理全图像素点,获得全图像素通路集;
76.线条特征参数模块,用于判断像素通路是否为线条,用户可自定义所述参数;
77.线条检测模块,用于处理全图像素通路集合,根据线条特征参数以及判断阈值,获得线条位置集;
78.线条消除器,用于根据线条位置集,进行像素翻转,消除线条,获得无线条文档图像。
79.作为优选,所述像素通路提取模块包括:
80.行像素通路统计器,用于处理单行像素点,获得单行像素通路集。
81.本发明与现有技术相比,有益效果是:(1)本发明设计了通路算法,引入像素间的通路关系对投影法的底层算法进行改进,用像素通路表示连续的非背景像素点,能准确检测出点虚线、短实线等非连通长线条,以及文字环绕型线条的位置,且计算量小,内存及时间消耗与投影法近似;(2)本发明可检测的线条类型可以根据线条特征参数的增加而增加,用户可以根据实际应用场景,自定义线条特征参数,实现线条的消除。
附图说明
82.图1为本发明实施例所提供的用于文档图像的多类型线条消除方法的一种流程图;
83.图2为本发明实施例所提供的用于文档图像的多类型线条消除系统的一种原理框
图;
84.图3为本发明实施例所提供的图像预处理模块的一种构架示意图;
85.图4为本发明实施例所提供的像素通路提取模块的一种构架示意图;
86.图5为本发明实施例所提供的行像素通路统计器的一种构架示意图;
87.图6为本发明实施例所提供的线条检测模块的一种构架示意图;
88.图7为本发明实施例所提供的用于文档图像的多类型线条消除方法实际应用过程的一种示意图。
具体实施方式
89.为了更清楚地说明本发明实施例,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
90.实施例:
91.如图1和图7所示,本发明提供了用于文档图像的多类型线条消除方法,本发明实施例中,为了能更加快速有效地去除文档图像中的各类线条,例如长实线、细虚线、点虚线等等,设计了通路算法引入像素间的通路关系对投影法的底层算法进行改进,一行像素点通过计算得到的不再是一个数值,而是一组数组,能直接表示一行像素点中所有的连续非背景像素点即像素通路。然后通过像素通路的长度及间距规律来判断其是否为线条,从而进行消除。方法具体包括如下步骤:
92.步骤(1),图像预处理。参照图3,输入待处理文档图像in,经过灰度变换、二值化、透视变换处理,输出二值化图像ib,像素行rj,j∈{1,

,n},rj=《v
j,1
,v
j,2


,v
j,m
》,像素列ci,i∈{1,

,m},ci=《v
1,i
,v
2,i


,v
n,i
》,其中v
i,j
表示《i,j》处的像素值。
93.步骤(2),行像素通路提取。输入二值化图像ib,像素行rj,输出第j行的像素通路集sj。参照图5,具体方法包括:
94.步骤(2.1),遍历rj,当遇到首个非背景像素点p《j,start》时,计算其与后续像素的连通性及通路,直至遇到第一个不连通的像素停止,根据贪心算法得到与像素p《j,start》有最长通路path的像素位置p《j,end》,从而得到一个像素通路pa《start,l》,其中start表示该像素通路的开始位置,l表示像素通路的长度。
95.步骤(2.2),随后从像素p《j,end》往后遍历,遇到首个非背景像素点p《j,start2》时,重复上述步骤(2.1)操作,获得一个像素通路pa《start2,l2》。
96.步骤(2.3),重复上述步骤(2.2)操作,直至遍历完像素行rj,获得第j行的像素通路集sj。
97.例如,输入像素行r1《0,0,0,255,255,255,0,0,255,255,255,255,0,...》。
98.通过上述方法得到改行的像素通路集s1{[4,3],[9,4],...}。
[0099]
步骤(3),线条初步识别。输入第j行的像素通路集sj,输出行判断结果《sj,res》,该部分可根据自行定义的线条特征参数来辨别各类线条,目前预设定三种线条类型。其中res分别用0,1,2,3表示改行无线条存在,有实线存在,有细虚线存在,有点虚线存在。具体方法包括:
[0100]
步骤(3.1),实线判断,具体方法如下:
[0101]
步骤(3.1.1),根据第j行的像素通路集sj,获取到像素通路长度差分数组tj(取绝对值)。
[0102]
步骤(3.1.2),如第j行存在像素通路pai长度大于第一预设值th1,进入下一步,反之则输出《sj,0》。其中第一预设值为实线长度阈值初值,th1=输入图像宽度w*α,α=0.02。
[0103]
步骤(3.1.3),若该通路处或下一通路pa
i 1
处的长度差分值大于tj的上四分位数或该像素通路为该行第一条像素通路,则初步判断第j行存在实线,输出判断结果《sj,1》,反之进入下一步。
[0104]
步骤(3.1.4),若该通路处的长度差分值小于tj的上四分位数,取通路pa
i-1
,若像素通路pa
i-1
长度大于第一预设值(两条实线相邻),则初步判断第j行存在实线,输出判断结果《sj,1》,反之则输出《sj,0》。
[0105]
其中每一行像素通路的长度差分值可以为:
[0106][0107]
其中diffpi代表第i个像素通路的长度差分值,li表示第i个像素通路的通路长度。
[0108]
其中差分数组的上四分位计算公式为:
[0109]
qti=i*(n 1)/4
[0110][0111]
其中qti表示第i分位数为第几观测值,n表示差分数组中元素个数,qi表示第i分位数,表示向下取整,表示向上取整,ti表示差分数组tj中的第i个数。
[0112]
例如,假设输入文档图像的宽度w=1000,h=20;
[0113]
输入像素通路集s2{[5,6],[15,21],[40,3],[48,2],[55,5]};
[0114]
t2=[0,15,18,1,3];
[0115]
排序之后[0,1,3,15,18];
[0116]
qt3=3*(5 1)/4=4.5,故四分位在第4个数字和第五个数字之间;
[0117]
q3=15 (18-15)*0.25=15.75;
[0118]
像素通路[15,21],其长度为21大于h,且其后一个长度差分值18大于q3,故初步判断s2存在实线,输出《s2,1》。
[0119]
步骤(3.2),细虚线判断,具体方法如下:
[0120]
如第j行存在th2条连续的像素通路,其长度相同且相邻通路之间的间距相同,则初步判断第j行存在细虚线,输出判断结果《sj,2》,反之则输出《sj,0》。th2为第二预设值,th2=3。
[0121]
步骤(3.3),点虚线判断,具体方法如下:
[0122]
如第j行存在th3条连续的闭合像素通路,且相邻通路之间的间距均相同,则初步判断第j行存在点虚线,输出判断结果《sj,3》,反之则输出《sj,0》。th3为第三预设值,th3=5。
[0123]
步骤(4),重复上述步骤(2)-步骤(3),直至遍历完所有像素行,输出像素通路集s,
s=《《s1,res1》,《s2,res2》,

,《sn,resn》》。
[0124]
步骤(5),实线长度阈值更新。输入像素通路集s,输出水平实线判断阈值k。具体方法包括:
[0125]
(5.1),根据像素通路集s,获取到所有像素通路长度数组lt。
[0126]
(5.2),取数组lt的上四分位作为水平实线判断阈值k。
[0127]
步骤(6),线条位置准确判断。输入像素通路集s,输出水平线条位置集r1{《j,begin,finish》,...},其中j表示线条所在像素行,begin,finish表示线条的起始位置。可根据不同的线条特征参数判断各类线条,目前预设定三种线条类型。具体方法包括:
[0128]
步骤(6.1),根据像素通路集s,取得初步判断含有实线的像素通路集q1,含有细虚线像素通路集q2,含有点虚线像素通路集q3。qi=《《sj,i》,

》。
[0129]
步骤(6.2),实线像素通路判断。具体方法如下:
[0130]
步骤(6.2.1),遍历q1,获得一行的像素通路集sj。
[0131]
步骤(6.2.2),根据一行的像素通路集sj,获取到像素通路长度差分数组tj(值均取绝对值)。
[0132]
步骤(6.2.3),遍历sj,当遇到像素通路pam《start,l》,若其通路长度大于阈值k,进入下一步,反之继续遍历sj。
[0133]
步骤(6.2.4),若该通路处或下一通路pa
m 1
的长度差分值大于tj的上四分位数或该像素通路为该行第一条像素通路,则将像素通路《j,start,start l》添加至线条位置集r1中,返回步骤(6.2.3)。反之进入下一步。
[0134]
步骤(6.2.5),若该通路处的长度差分值小于tj的上四分位数,取上一条通路pa
m-1
,若像素通路pa
m-1
长度大于阈值k(两条实线相邻),将像素通路《j,start,start l》添加至线条位置集r1中,返回步骤(6.2.3)。其中j表示线条所在像素行,start,start l表示线条的起始位置。
[0135]
步骤(6.2.6),重复步骤(6.2.2)-步骤(6.2.5),直至遍历完q1。
[0136]
步骤(6.3),细虚线像素通路判断。具体方法如下:
[0137]
步骤(6.3.1),遍历q2,获得一行的像素通路集sj=《pa1,pa2,

》。
[0138]
步骤(6.3.2),根据一行的像素通路集sj,获取到像素通路长度差分数组tj(值均取绝对值)。
[0139]
步骤(6.3.3),根据tj,获取到长度差分值为0且连续的n(n》th2)个像素通路集合temp=《pak,pa
k 1
,pa
k 2


,pa
k n
,》,th2为第二预设值。
[0140]
步骤(6.3.4),根据像素通路集合temp,得到m(th2《m≤n)个相邻通路之间的间距均相等的连续像素通路集合line=《pab,pa
b 1
,pa
b 2


,pa
b m
》。(假设pab=《start1,l1》,pa
b m
=《startm,lm》),将像素通路《j,start,startm lm》添加至线条位置集r1中。
[0141]
步骤(6.3.5),重复步骤(6.3.2)-步骤(6.3.4),直至遍历完q2。
[0142]
例如,假设输入像素通路集s3{[5,6],[12,6],[19,6],[26,6],[33,5]}
[0143]
t3=[0,0,0,0,1]
[0144]
像素通路[5,6],[12,6],[19,6],[26,6]长度均相等,且通路之间间距均为1,故这四条像素通路组成一条细虚线,则将[3,5,32]添加至线条位置集r1中。
[0145]
步骤(6.4),点虚线像素通路判断。具体方法如下:
[0146]
步骤(6.4.1):遍历q3,获得一行的像素通路集sj=《pa1,pa2,

》。
[0147]
步骤(6.4.2):根据sj,获取到连续的n(n》th3)个闭合像素通路集合temp=《pak,pa
k 1
,pa
k 2


,pa
k n
,》,th3为第三预设值。
[0148]
步骤(6.4.3),根据像素通路集合temp,得到m(th3《m≤n)个相邻通路之间的间距均相等的连续像素通路集合line=《pab,pa
b 1
,pa
b 2


,pa
b m
》。(假设pab=《start1,l1》,pa
b m
=《startm,lm》),将像素通路《j,start1,startm lm》添加至线条位置集r1中。
[0149]
步骤(6.4.4),重复步骤(6.4.2)、步骤(6.4.3)操作,直至遍历完q3。
[0150]
步骤(7):线条消除。输入图像预处理后的图像ib,线条位置集r1,输出无水平线条图像ih。具体方法包括:
[0151]
步骤(7.1):使用k-means聚类,分离出背景色。
[0152]
步骤(7.2):根据线条位置集r1,对线条所在位置进行底色填充,从而实现线条的消除,获得无水平线条图像ih。
[0153]
步骤(8),垂直线条消除。输入无水平线条图像ih,输出最终无线条图像i。只需将图像ih进行顺时针90
°
旋转,此时原本图像中的垂直线条相对于图像而言就变为了水平线条,再重复步骤(2)-步骤(7)即可消除垂直线条。具体方法包括:
[0154]
步骤(8.1),将图像ih进行顺时针90
°
旋转。
[0155]
步骤(8.2),重复步骤(2)-步骤(7),消除原有垂直图像,得到图像iv。
[0156]
步骤(8.3),将图像iv进行逆时针90
°
旋转,得到最终无线条图像i。
[0157]
如图2所示,本发明还提供了用于文档图像的多类型线条消除系统,包括:
[0158]
图像预处理模块,如图3所示,用于处理输入的文档图像,获得无倾斜、清晰的二值图像;
[0159]
像素通路提取模块,如图4所示,用于处理全图像素点,获得全图像素通路集;
[0160]
线条特征参数模块,用于判断像素通路是否为线条,用户可自定义所述参数;
[0161]
线条检测模块,如图6所示,用于处理全图像素通路集合,根据线条特征参数以及判断阈值,获得线条位置集;
[0162]
线条消除器,用于根据线条位置集,进行像素翻转,消除线条,获得无线条文档图像。
[0163]
像素通路提取模块包括:
[0164]
行像素通路统计器,如图5所示,用于处理单行像素点,获得单行像素通路集。
[0165]
本发明设计了通路算法,引入像素间的通路关系对投影法的底层算法进行改进,用像素通路表示连续的非背景像素点,能准确检测出点虚线、短实线等非连通长线条,以及文字环绕型线条的位置,且计算量小,内存及时间消耗与投影法近似;本发明可检测的线条类型可以根据线条特征参数的增加而增加,用户可以根据实际应用场景,自定义线条特征参数,实现线条的消除。
[0166]
以上所述仅是对本发明的优选实施例及原理进行了详细说明,对本领域的普通技术人员而言,依据本发明提供的思想,在具体实施方式上会有改变之处,而这些改变也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献