一种识别圆形公章中文字的方法技术

技术编号:14866886 阅读:136 留言:0更新日期:2017-03-20 22:47
本发明专利技术涉及一种识别圆形公章中文字的方法,第1步:裁剪出一个覆盖了盖章位置的尽量小的图片1。第2步:在图片1中找圆。第3步:根据找到的圆形的圆心和半径从图片1中再次裁剪出一个只含有圆形的图片2;第4步:二值化图片2;第5步,将文字图像按顺序“拉直”;第6步:将“拉直”后的图像内容进行文字识别。本发明专利技术的有益效果为:公章中的内容虽环绕圆心看起来不是平直的,但单独看每个字,依然都是标准的印刷体,只不过每个文字都有一定的倾斜角度。本发明专利技术将这些环绕圆心的文字想办法“拉直”变为按行书写的文字,再送入通用的OCR模块,即可实现公章内容的识别,使业务系统自动识别出企业的名称,进一步提高运营商业务系统的工作效率。

【技术实现步骤摘要】

本专利技术属于图像处理、文字识别
,尤其涉及一种识别圆形公章中文字的方法
技术介绍
目前OCR(OpticalCharacterRecognition,光学字符识别)技术已经相当成熟并应用在各个领域。如手机上的各种拍摄名片即可将名片内容导入通讯录的程序、高速公路上拍摄车牌进行号牌识别的仪器、扫描文档将文档图片转化为文字的程序等等。这些应用都是借助OCR技术对相关文字图片进行分析转化为文字信息,极大地降低了人们的工作量。电信运营商也应用了此技术来提高工作效率。如目前集团业务占电信运营商的业务比重非常高,有的电信运营商派出客户经理去企业办理集团类业务时,集团企业需要签订相关的纸质协议单,运营商的客户经理只要用手机拍摄协议单,利用OCR技术,就可将协议单上的关键信息录入运营商的后台管理系统,提高了客户经理的工作效率。同时集团客户签订的协议单作为回执保留在客户处,运营商不再需要保留纸质的协议单,节省了50%的协议单印刷量,实现了一定的节能减排。这里存在的问题是,集团类业务需要加盖企业的公章,业务系统OCR只会识别正规的印刷体,而无法识别圆形的印章内容,也就无法从协议单上读出办理业务的企业名称,还是要靠客户经理手工输入企业名称,没有实现完全的自动化,工作效率还有待提高。
技术实现思路
本专利技术的目的在于克服现有技术存在的不足,而提供一种识别圆形公章中文字的方法,使业务系统自动识别出企业的名称,进一步提高运营商业务系统的工作效率。本专利技术的目的是通过如下技术方案来完成的。这种识别圆形公章中文字的方法,步骤如下:第1步:裁剪出一个覆盖了盖章位置的尽量小的图片1。第2步:在图片1中,利用Hough变换找圆。第3步:根据找到的圆形的圆心和半径从图片1中再次裁剪出一个只含有圆形的图片2第4步:二值化图片2;第5步,根据专利技术的算法将二值化后的围绕圆心的文字图像按顺序“拉直”;第6步:将“拉直”后的图像内容送入通用OCR模块进行文字识别。其中,除了“步骤5”外,其它步骤都是成熟的技术。简单介绍如下:Hough变换,将图像空间内具有一定关系的像元进行聚类,寻找能把这些像元用某一解析形式联系起来的参数空间累积对应点,用来找图像中的直线和圆比较理想。图像的二值化,就是将图像上的像素点的灰度值根据一定的阈值设置为0或255,也就是将整个图像呈现出只有黑和白的视觉效果。实际应用为便于分析,一般白色空白用0表示,黑色有效像素用1表示。故本专利技术只讨论如何将二值化后的公章内圆形的文字“拉直”并重新组合为“平直”的文字。二值化后的印章图片采用一维数组存储,图片的原点在左上角,按行存储,其中值为0表示空白像素,值为1表示黑色像素。1,计算印章文字形成的圆圈底部和顶部到圆心的距离r1,r2;2,计算印章文字形成的圆圈的开始和结束角度b1、b23,计算印章圈中每个文字的开始、结束角度a1、a24,根据每个文字的角度a1,a2和半径r1,r2,经过3次坐标变换,可算得“摆正”后的点阵数据5,按顺序拼接每个“摆正”后的文字,形成“拉直”后的文字点阵数据。下面分别介绍每一个步骤。第一节:计算印章文字形成的圆圈底部和顶部到圆心的距离r1,r2;圆的直角坐标圆心为(x0,y0),半径为r。采用圆心处的极坐标分析,其和图片实际存储数据的直角坐标转换关系如下:x=r*cos(θ)+x0;y=y0-r*sin(θ);设:Rsum[]数组,记录半径从1到r的圆上的,360度内整数度数对应的有效点数,数组下标为半径;Data[]数组,存储二值化后的印章图片数据,其中值为0表示空白像素,值为1表示黑色像素;Width为印章图片的点阵宽度;步骤如下:1,初始化半径变量R为1;2,判断R是否小于印章半径r;若小于r则进入下一步,否则进入步骤103,初始化角度变量A为0,计数器Sum为0;4,判断角度变量A是否小于360;若小于360则进入步骤7,否则进入步骤55,半径R的圆上的点数已经计算完毕,保存该半径圆上的有效点数Rsum[R]=Sum;6,计算下一个半径R上的点数:半径R递增1,进入步骤2;7,对当前的半径R和角度A,进行极坐标和实际存储数据的直角坐标之间的转化:x,y为直角坐标的坐标值,其中:x=R*cos(A*π/180)+x0;y=y0-R*sin(A*π/180);8,判断公章原始数据Data[]中,该(x,y)对应的值是否为有效像素;即判断Data[y*width+x]是否为1,若为1,则计数器Sum递增1并进入下一步;否则直接进入下一步;9,角度A递增1度,进入步骤4;10,得到了半径从1到r的各个圆上的整数角度对应的点数,即Rsum[]数组11,在Rsum[]中,从半径R为5开始向外遍历每个半径圆上的点数,当Rsum[R]为0时,停止遍历。此时求得的Rsum的下标R为公章中心五角星的半径;12,继续向外遍历半径R,当Rsum[R]大于10时,停止遍历,记录此时R为r1,则r1为公章文字形成的圆圈底部的半径;13,继续向外遍历半径R,当Rsum[R]小于10时,停止遍历,记录此时的R为r2,则r2为公章文字形成的圆圈顶部的半径;至此,得到了印章文字形成的圆圈底部和顶部到圆心的距离r1,r2;第二节:计算印章文字形成的圆圈的开始和结束角度b1、b2;设:JDArray[]为标记360度内每个角度上是否有有效点的数组。数组下标为角度,当对应角度A上无有效点时,JDArray[A]为1;否则JDArray[A]为0。步骤如下:1)初始化角度A为0,扫描的半径R为(r1+r2)/2;2)判断角度A是否小于360,若小于,则继续;否则进入步骤9;3)对当前的半径R和角度A,进行极坐标和实际存储数据的直角坐标之间的转化:x,y为直角坐标的坐标值,其中:x=R*cos(A*π/180)+x0;y=y0-R*sin(A*π/180);4)判断公章原始数据Data[]中,该(x,y)对应的值是否为有效像素;即判断Data[y*width+x]是否为1,若为1,则角度A递增1,进入步骤2;否则进入下一步;5)将扫描半径R向r2增长,检查是否存在有效点。设置TmpR为R;6)判断TmpR是否小于r2,若小于r2,则进入下一步;否则说明该角度上无有效点,JDArray[A]设置为1,扫描下一个角度,角度A递增1,进入步骤2;7)对当前的半径TmpR和角本文档来自技高网...

【技术保护点】
一种识别圆形公章中文字的方法,其特征在于:该方法包括如下步骤:第1步:裁剪出一个覆盖了盖章位置的图片1;第2步:在图片1中,利用Hough变换找圆;第3步:根据找到的圆形的圆心和半径从图片1中再次裁剪出一个只含有圆形的图片2;第4步:二值化图片2;第5步,将二值化后的围绕圆心的文字图像按顺序“拉直”;第6步:将“拉直”后的图像内容送入通用OCR模块进行文字识别。

【技术特征摘要】
1.一种识别圆形公章中文字的方法,其特征在于:该方法包括如下步骤:
第1步:裁剪出一个覆盖了盖章位置的图片1;
第2步:在图片1中,利用Hough变换找圆;
第3步:根据找到的圆形的圆心和半径从图片1中再次裁剪出一个只含有圆形的图片2;
第4步:二值化图片2;
第5步,将二值化后的围绕圆心的文字图像按顺序“拉直”;
第6步:将“拉直”后的图像内容送入通用OCR模块进行文字识别。
2.根据权利要求1所述的识别圆形公章中文字的方法,其特征在于:在上述的第5步中:
二值化后的印章图片采用一维数组存储,图片的原点在左上角,按行存储,其中值为0表示
空白像素,值为1表示黑色像素;
第1步:计算印章文字形成的圆圈底部和顶部到圆心的距离r1,r2;
第2步:计算印章文字形成的圆圈的开始和结束角度b1、b2;
第3步:计算印章圈中每个文字的开始、结束角度a1、a2;
第4步:根据每个文字的角度a1,a2和半径r1,r2,经过3次坐标变换,可算得“摆正”后的点
阵数据;
第5步:按顺序拼接每个“摆正”后的文字,形成“拉直”后的文字点阵数据。
3.根据权利要求2所述的识别圆形公章中文字的方法,其特征在于:在第1步中:
1)初始化半径变量R为1;
2)判断R是否小于印章半径r;若小于r则进入下一步,否则进入步骤10;
3)初始化角度变量A为0,计数器Sum为0;
4)判断角度变量A是否小于360;若小于360则进入步骤7,否则进入步骤5;
5)半径R的圆上的点数已经计算完毕,保存该半径圆上的有效点数Rsum[R]=Sum;
6)计算下一个半径R上的点数:半径R递增1,进入步骤2;
7)对当前的半径R和角度A,进行极坐标和实际存储数据的直角坐标之间的转化:x,y
为直角坐标的坐标值,其中:x=R*cos(A*π/180)+x0;y=y0-R*sin(A*π/180);
8)判断公章原始数据Data[]中,该(x,y)对应的值是否为有效像素;即判断
Data[y*width+x]是否为1,若为1,则计数器Sum递增1并进入下一步;否则直接
进入下一步;
9)角度A递增1度,进入步骤4;
10)得到了半径从1到r的各个圆上的整数角度对应的点数,即Rsum[]数组;
11)在Rsum[]中,从半径R为5开始向外遍历每个半径圆上的点数,当Rsum[R]为0时,
停止遍历,此时求得的Rsum的下标R为公章中心五角星的半径;
12)继续向外遍历半径R,当Rsum[R]大于10时,停止遍历,记录此时R为r1,则r1为

\t公章文字形成的圆圈底部的半径;
13)继续向外遍历半径R,当Rsum[R]小于10时,停止遍历,记录此时的R为r2,则r2
为公章文字形成的圆圈顶部的半径。
4.根据权利要求2所述的识别圆形公章中文字的方法,其特征在于:在第2步中:
1)初始化角度A为0,扫描的半径R为(r1+r2)/2;
2)判断角度A是否小于360,若小于,则继续;否则进入步骤9;
3)对当前的半径R和角度A,进行极坐标和实际存储数据的直角坐标之间的转化:x,y
为直角坐标的坐标值,其中:x=R*cos(A*π/180)+x0;y=y0-R*sin(A*π/180);
4)判断公章原始数据Data[]中,该(x,y)对应的值是否为有效像素;即判断
Data[y*width+x]是否为1,若为1,则角度A递增1,进入步骤2;否则进入下一步;
5)将扫描半径R向r2增长,检查是否存在有效点,设置TmpR为R;
6)判断TmpR是否小于r2,若小于r2,则进入下一步;否则说明该角度上无有效点,
JDArray[A]设置为1,扫描下一个角度,角度A递增1,进入步骤2;
7)对当前的半径TmpR和角度A,进行极坐标和实际存储数据的直角坐标之间的转化:x,
y为直角坐标的坐标值,其中:x=TmpR*cos(A*π/180)+x0;y...

【专利技术属性】
技术研发人员:范晨
申请(专利权)人:杭州仁盈科技股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1