一种票据区域旋转和切分方法、系统、设备与流程

文档序号:17049823发布日期:2019-03-05 19:56阅读:237来源:国知局
一种票据区域旋转和切分方法、系统、设备与流程

本发明涉及票据,尤其涉及一种票据区域旋转和切分方法、系统、设备。



背景技术:

随着公司规模的不断壮大,各个方面的支出费用越来越多,因此产生的票据也越来越多。进而,也使公司的财务人员工作更加繁重,因为各方面的费用报销都要经过财务人员的审核整理。目前,公司的票据审核都还是财务人员人工核算的,大量的票据需要很多的财务人员来完成核算工作,需要耗费大量的人力和财力。另外,人工核算票据数据的工作比较枯燥乏味,财务人员核算的准确率很容易受到心情等外在因素的影响。

因此,采用图像处理技术通过机器智能地去识别票据中的目标区域能够很好的解决该问题。而识别的首要工作便是把目标区域切分出来,以便于开展后续的识别工作。



技术实现要素:

为了解决上述技术问题,本发明的目的在于提供一种票据区域旋转和切分方法、系统、设备。

根据本发明的一个方面,提供了一种票据区域旋转和切分方法,包括:

s1、获取带背景的票据图像;

s2、对所述票据图像进行预处理;

s3、利用轮廓法,识别出该票据图像中票据区域的外围轮廓;

s4、根据该外围轮廓计算票据区域的倾斜角度;

s5、按照倾斜角度,旋转所述票据区域进行纠偏;

s6、分割出所述票据区域。

所述带背景的票据图像是通过将票据贴在纸张上,如空白纸张,扫描后得到。

票据图像的倾斜问题对于识别技术是个很大的挑战,因此需要把图像摆正,也即是使其处于水平摆放,以便于更好地进行图像识别;

另一方面,从一张包含有票据区域的大图中识别票据中的目标区域会导致识别率非常低,因此切分出图中的票据区域,并且使用sift方法对切分出来的票据区域进行处理确定其没有倒置,以便于后面识别步骤的快速、有效的进行。

进一步的,票据图像通过扫描步骤获取。

进一步的,预处理包括对票据图像进行纠偏、灰度化、二值化处理。

进一步的,预处理还包括:对二值化的结果图像进行膨胀、腐蚀、膨胀处理。

步骤s2中的对所述票据图像进行预处理具体包括如下步骤:

s21、判断票据图像的高度和宽度,如果高度大于宽度,旋转90度,使其横着摆放;

s22、把票据图像转为灰度图像,并对其进行二值化;

s23、对二值化的结果图像进行膨胀、腐蚀、膨胀。

进一步的,所述步骤s3包括:

获取经预处理的票据图像中所有轮廓,根据所有轮廓面积与所述票据图像面积关系,判断票据区域的外围轮廓。

进一步的,所述根据所有轮廓的面积与所述票据图像面积关系,包括:

获取票据图像面积,将各轮廓面积与票据图像面积之比与预设条件阈值对比;

若比值大于预设条件阈值,则判断该轮廓为票据区域外围轮廓。

步骤s3中采用查找轮廓的方法找出票据区域的外围轮廓矩形,具体包括:

s31、根据步骤s2得到的结果图,采用查找轮廓的方法找出图像中的所有轮廓;

s32、以轮廓的面积大于整张图像面积的1/3为条件,找出票据区域的的轮廓矩形。

进一步的,按照倾斜角度,旋转所述票据区域进行纠偏之后,还包括:

对纠偏后的票据区域执行步骤s2和s3。

进一步的,分割出票据区域的图像之后执行步骤包括:通过sift方法对切分的票据区域是否倒置进行判断,若是则上下翻转所述图像。

进一步的,通过sift方法,判断切分的票据区域是否倒置包括:

将与票据区域的图像大小一致的空白票据图像作为匹配模板,与该待判断票据图像拼接;

使用sift方法分别提取票据有效区域图像与匹配模板的特征点;

将匹配的特征点用线段连接;

计算所有线段的倾斜角度,并获取出现次数最多的倾斜角度;

若出现次数最多的倾斜角度大于预设阈值,则将票据区域上下翻转。

进一步的,使用sift方法分别提取票据有效区域图像与匹配模板的特征点,包括:

统计出在匹配模板图像中匹配区域内提取到的特征点,找出每个特征点在票据有效区域图像中的匹配点。

进一步的,匹配模板图像中匹配区域为:

440≤width≤840,0≤height≤140。

根据本发明的另一个方面,提供了一种票据区域旋转和切分系统,包括:

获取带背景的票据图像采集单元;

对所述票据图像进行预处理的预处理单元;

利用轮廓法,识别出该票据图像中票据区域的外围轮廓的外围轮廓识别单元;

根据该外围轮廓计算票据区域倾斜角度的倾斜角度获取单元;

按照倾斜角度,旋转所述票据区域进行纠偏的纠偏单元;

分割出所述票据区域的切分单元。

该系统为基于上述票据区域旋转和切分方法的系统,其对所述票据图像进行预处理;利用轮廓法,识别出该票据图像中票据区域的外围轮廓;根据该外围轮廓计算票据区域的倾斜角度;按照倾斜角度,旋转所述票据区域进行纠偏,并对其进行切分,分割出所述票据区域等步骤如票据区域旋转和切分方法部分所述。

根据本发明的另一个方面,提供了一种票据区域旋转和切分设备,包括存储有计算机程序的计算机可读介质,所述程序被运行用于执行:

s1、获取带背景的票据图像;

s2、对所述票据图像进行预处理;

s3、利用轮廓法,识别出该票据图像中票据区域的外围轮廓;

s4、根据该外围轮廓计算票据区域的倾斜角度;

s5、按照倾斜角度,旋转所述票据区域进行纠偏;

s6、分割出所述票据区域。

该设备为基于上述票据区域旋转和切分方法的设备,其对所述票据图像进行预处理;利用轮廓法,识别出该票据图像中票据区域的外围轮廓;根据该外围轮廓计算票据区域的倾斜角度;按照倾斜角度,旋转所述票据区域进行纠偏,并对其进行切分,分割出所述票据区域等步骤如票据区域旋转和切分方法部分所述。

与现有技术相比,本发明具有以下有益效果:

1、本发明示例的票据区域旋转和切分方法,将票据区域从一张包含有票据区域的大图中切分出来并摆正,这样大大提高了识别率,为通过图像处理技术自动识别票据中的目标区域,解放人工,提供可能。

2、本发明示例的票据区域旋转和切分方法,利用sift方法对切分出来的票据区域进行处理确定其有无倒置,保证票据区域的票据票头在图像的上方,以便于后面识别步骤的快速、有效的进行。

3、本发明示例的票据区域旋转和切分系统,通过采集单元获取带背景的票据图像;通过预处理单元,对所述票据图像进行预处理;利用轮廓法,识别预处理后的票据图像票据区域的外围轮廓;通过倾斜角度获取单元根据该外围轮廓计算票据区域倾斜角度;通过纠偏单元按照倾斜角度,旋转所述票据区域进行纠偏;通过切分单元分割出所述票据区域,将图像处理技术识别的票据区域分割出来并摆正。使票据信息的获取真正实现了自动化。

4、本发明示例的票据区域旋转和切分设备,存储、被运行用于执行下述程序:获取带背景的票据图像;对所述票据图像进行预处理,预处理包括纠偏、灰度化处理、二值化;利用轮廓法,识别预处理后的票据图像票据区域的外围轮廓;根据该外围轮廓计算票据区域的倾斜角度;按照倾斜角度,旋转所述票据区域进行纠偏,并对其进行切分,分割出所述票据区域。仅需票据图像,通过运行上述程序即可自动摆正、切分票据区域,无需人工,不但保证了准确度,而且也大大提高了效率。

附图说明

图1为本发明的实施例一发票区域旋转和切分方法的示例性流程图;

图2为本发明的实施例一发票区域旋转和切分系统的框图。

具体实施方式

为了更好的了解本发明的技术方案,下面结合具体实施例对本发明作进一步说明。

实施例一:

本实施例以发票为例进行说明。

在纸张上粘贴发票,获取粘贴有发票的白纸的整个图像,经扫描得到带有背景的发票图像。

一方面,发票图像的倾斜问题对于识别技术是个很大的挑战,因此需要把图像摆正,也即是使其处于水平摆放,以便于更好地进行图像识别;

另一方面,从一张包含有发票区域的大图中识别发票中的目标区域会导致识别率非常低,因此切分出图中的发票区域,并且使用sift方法对切分出来的发票区域进行处理确定其没有倒置,以便于后面识别步骤的快速、有效的进行。

本实施例提供了一种发票区域旋转和切分方法,步骤包括:

s1、扫描贴有发票的纸张,获取包含有发票的图像,即发票图像。

s2、对发票图像进行预处理,预处理包括纠偏、灰度化处理、二值化、膨胀、腐蚀、膨胀处理,先灰度才可以进行二值化,二值化是为了后续的膨胀做铺垫。灰度没有参数要求,

二值化设置的门限值是220,具体实现是这一行代码:ret,thresh1=cv2.threshold(img_gray,220,255,cv2.thresh_binary_inv)。

具体包括:

s21、判断发票图像的高度和宽度,如果高度大于宽度,则旋转90°,使其横着摆放,即水平摆放;

s22、把发票图像转为灰度图像,并对其进行二值化;

s23、对二值化的结果图像进行膨胀、腐蚀、膨胀处理,

经膨胀、腐蚀、膨胀处理后,发票的轮廓区域更清晰明了,使调用findcounters时更容易找到发票区域轮廓。参数设置如下:kernel_dilation=np.ones((10,18),np.uint8)

dilation=cv2.dilate(thresh1,kernel_dilation,iterations=3)

kernel_erosion=np.ones((1,1),np.uint8)

erosion=cv2.erode(dilation,kernel_erosion,iterations=1)

dilation2=cv2.dilate(binary,kernel_dilation,iterations=3);

s3、利用轮廓法,识别出该发票图像中发票区域的外围轮廓,

进一步的,所述步骤s3包括:

获取经预处理的票据图像中所有轮廓,根据所有轮廓面积与所述票据图像面积关系,判断票据区域的外围轮廓。

进一步的,所述根据所有轮廓的面积与所述票据图像面积关系,包括:

获取票据图像面积,将各轮廓面积与票据图像面积之比与预设条件阈值对比;

若比值大于预设条件阈值,则判断该轮廓为票据区域外围轮廓。其通过调用opencv包中的findcounters函数实现的,具体包括:

s31、根据步骤s2得到的预处理后的图像,采用查找轮廓的方法找出所述图像中的所有轮廓;

s32、以轮廓的面积大于整张图像面积的1/3为条件,找出发票区域的的外围轮廓矩形,其中,因为findcounters返回的结果中会有多个它所找到的轮廓,所以需要通过判断轮廓的大小从中找出发票的轮廓。因为发票轮廓大于整张图像的1/3,并且是在图像中最大的轮廓,因此以轮廓的面积大于整张图像面积的1/3为判断条件。

s4、根据该外围轮廓计算发票区域的倾斜角度;

s5、按照倾斜角度,旋转所述发票区域进行纠偏;

s51、读取原始图像,并根据计算所得的角度旋转发票图像,从而使发票区域处于水平摆放的状态;

s52、对旋转后的发票图像执行步骤s2和s3,此时得到的轮廓矩形即是水平的。

s6、并对步骤s5纠偏后的图像进行切分,分割出所述发票区域,具体包括:

把矩形内部的发票区域从的所述发票图像中切分出来。

s7、通过sift方法对切分的发票区域是否倒置进行判断,若是则进行翻转,具体包括:

s71、将与发票区域对应的空白发票图像作为匹配模板;

s72、通过resize法调整步骤s6切分出来的发票区域图像,使其大小和匹配模板一致。并且把该图像拼接在匹配模板的右边,两者合成一张图像;

s73、利用sift方法分别提取模板图像和待判断的发票图像中的特征点;

s74、统计出在匹配模板图像中匹配区域(440≤width≤840,0≤height≤140,单位为像素,该区域模板图像特征最明显,其他区域算法的正确率很低)内提取到的特征点,找出每个特征点在发票图像中的匹配点并且给两点连线;

s75、计算出步骤s74中得到的所有线段的倾斜角度,并求出出现次数最多的倾斜角度;

s76、如果步骤s75中求得的出现次数最多的倾斜角度大于10度,说明该图像是上下倒置的,则进行上下翻转;

s77、保存步骤s76处理过的发票图像。此时所得的即是无空白边距的、水平摆放的、摆正且没有倒置的发票图像,算法结束。

本实施例提供了一种发票区域旋转和切分系统,包括:

获取发票图像的采集单元;

对发票图像进行预处理的预处理单元;

利用轮廓法,识别出预处理后的发票图像发票区域的外围轮廓的外围轮廓识别单元;

根据该外围轮廓计算发票区域倾斜角度的倾斜角度获取单元;

按照倾斜角度,旋转所述发票区域进行纠偏的纠偏单元;

分割出所述发票区域的切分单元。

本实施例所涉及的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中。这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

本实施例提供了一种发票区域旋转和切分设备,包括存储有计算机程序的计算机可读介质,所述程序被运行用于执行:

s1、获取带背景的票据图像;

s2、对所述票据图像进行预处理;

s3、利用轮廓法,找出该经预处理的票据图像中所有轮廓,根据识别轮廓面积的阈值,识别出该票据图像中票据区域的外围轮廓;

s4、根据该外围轮廓计算票据区域的倾斜角度;

s5、按照倾斜角度,旋转所述票据区域进行纠偏;

s6、分割出所述票据区域。

该计算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行。

实施例二:

本实施例与实施例一相同的特征不再赘述,本实施例与实施例一不同的特征在于:

本实施例的一种发票区域旋转和切分方法中,

s3、利用轮廓法,识别预处理后的发票图像发票区域的外围轮廓,具体包括:

s31、根据步骤s2得到的预处理后的图像,采用查找轮廓的方法找出所述图像中的所有轮廓;

s32、以轮廓的面积大于整张图像面积的2/5为条件,找出发票区域的的外围轮廓矩形。

实施例三:

本实施例与实施例一相同的特征不再赘述,本实施例与实施例一不同的特征在于:以其他票据为例进行说明,如医疗票据。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1