本发明涉及智能设备技术,具体涉及一种基于扫描设备调整扫描图像的方向的方法及装置。
背景技术:
自助服务终端是行政事项自助办理的受理窗口。在进行行政预审批事项中,要求市民通过终端扫描设备将纸质文件数字化上传到后台审批系统中进行审批。但是在文件扫描过程中,可能出现人为操作失误而导致扫描件内容方向上下颠倒或连续页码文件的排序错乱的情况。当行政审批人员在对行政事项审批时,由于操作的限制,是无权对有误的上传扫描资料进行纠正等文档编辑操作,因此导致审批效率低下甚至出现退件重办的情况。
技术实现要素:
针对现有技术中的问题,本发明实施例提供一种基于扫描设备调整扫描图像的方向的方法及装置,实现对每一扫描图片进行纸张方向判断和调整,给资料的整理带来方便和智能化,提高行政事项自助办理事务的效率。
第一方面,本发明实施例提供一种基于扫描设备调整扫描图像的方向的方法,包括:
101、在纸质文件扫描完成后,确定图片的页边距中所有可能存在页码信息的区域,所述图片是扫描所述纸质文件得到的扫描图片;
102、采用二值化处理方式遍历所有可能存在页码信息的区域,获取存在页码的第一区域;
103、判断所述第一区域是否属于正确放置所述纸质文件时对应图片的页码区域;
104、如果不是,则按照对应第一区域的纸张旋转规则旋转所述图片,得到调整后的图片。
可选地,所述步骤103之后,所述方法还包括:
105、如果是,则识别所述第一区域中的页码信息;
106、判断当前扫描的所有图片的页码顺序是否属于依从小到大顺序排列图片;
107、如果是,则结束;
108、否则,根据每一图片的页码,将所有图片按照从小到大顺序进行排列,并输出排列后的文件。
可选地,所述步骤101包括:
1011、采用所述图片左上角为原点,横轴、纵轴分别以一个像素为单位长度建立二维平面坐标系;
1012、获取所述图片的最大纵坐标ymax和最大横坐标xmax;
1013、将Aymax-ymax,0-(1-A)ymax,Axmax-xmax,0-(1-A)xmax作为可能存在页码信息的区域;
所述A取值范围0.90-0.99。
可选地,所述步骤102包括:
针对每一个可能存在页码信息的区域,采用下述步骤进行遍历;
1021、选取离散的行,从选定的第一行开始隔两行进行扫描;
1022、对于每一离散的行,依据线段选取规则分别计算横向或者纵向的线段长度;
1023、判断所述线段长度是否满足页码判断条件;
1024、如果满足页码判断条件,则对符合页码判断条件的线段长度识别所述页码,获得存在页码的第一区域。
可选地,所述步骤1022包括:
针对Aymax-ymax区域,
将线段长度和线段数量初始化为0,像素位移循环从0开始;
从像素点(k,Aymax)开始,如果(k,Aymax)为黑色,并且右边临近点 (k+1,Aymax)也为黑色,则线段长度加1;
从像素点(k,Aymax)开始,如果(k,Aymax)为黑色,且(k,Aymax)的右边邻近像素点(k+1,Aymax)是白色像素时,线段断开,保存断开位置,线段数量加1,下一个线段长度也加1;
其中k为0到xmax的像素位移;当k大于等于xmax时,该行的线段扫描结束;转到Aymax+2开始,重复扫描过程,直到扫描完第ymax行为止;
或者,
针对0-(1-A)ymax区域,
将线段长度和线段数量初始化为0,像素位移循环从0开始;
从像素点(k,0)开始,如果(k,0)为黑色,并且右边临近点(k+1,0)也为黑色,则线段长度加1;
从像素点(k,0)开始,如果(k,0)为黑色,且(k,0)的右边邻近像素点 (k+1,0)是白色像素时,线段断开,保存断开位置,线段数量加1,下一个线段长度也加1;
其中k为0到xmax的像素位移;当k大于等于xmax时,该行的线段扫描结束;转到2行开始,重复扫描过程,直到扫描完第(1-A)ymax行为止;
或者,
针对Axmax-xmax区域,
将线段长度和线段数量nij初始化为0,像素位移k循环从0开始;
从像素点(Axmax,k)开始,如果(Axmax,k)为黑色,并且下方临近点(Axmax,k+1)也为黑色,则线段长度加1;
从像素点(Axmax,k)开始,如果(Axmax,k)为黑色,且(Axmax,k)的下方邻近像素点(Axmax,k+1)是白色像素时,线段断开,保存断开位置,线段数量加1,下一个线段长度也加1;
其中k为0到ymax的像素位移;当k大于等于ymax时,该列的线段扫描结束;转到Axmax+2列开始,重复扫描过程,直到扫描完第xmax列为止;
或者,
针对0-(1-A)xmax区域,
将线段长度和线段数量nij初始化为0,像素位移k循环从0开始;
从像素点(0,k)开始,如果(0,k)为黑色,并且下方临近点(0,k+1)也为黑色,则线段长度加1;
从像素点(0,k)开始,如果(0,k)为黑色,且(0,k)的下方邻近像素点 (0,k+1)是白色像素时,线段断开,保存断开位置,线段数量加1,下一个线段长度也加1;
其中k为0到ymax的像素位移;当k大于等于ymax时,该列的线段扫描结束;转到Axmax+2列开始,重复扫描过程,直到扫描完第xmax列为止。
可选地,所述步骤1023包括:
页码判断第一条件为:min<nij<max
其中min,max预先设定值,nij表示第i行,第j段线段的长度;
1023a、对于线段长度符合所述页码判断第一条件的线段,判断符合所述页码判断第一条件的线段是否集中,
1023b、如果有预设数量的线段集中在预设框内,则确定线段集中区域存在页码数字。
可选地,所述步骤1024包括:
针对单个数字的页码:
按照第一公式将所述线段集中区域中的像素与预设标准数字的每一个数字的像素进行匹配,
获取匹配结果中相似度最高的数字,将相似度最高的数字作为所述图片的页码;
第一公式为:
k为相似度最高的数字,vark为相似度,I0(i,j)表示标准数字中每一个数字的像素,I(i,j)表示所述线段集中区域中的像素,i为横坐标,j为纵坐标;
或者,
针对两个数字的页码,从左到右按照所述单个数字的页码的方式识别最相似的两个单个的数字,将识别的两个单个的数字按照左右顺序排列,将排列后的数字作为所述图片的页码;
或者,
针对三个数字的页码,从左到右按照所述单个数字的页码的方式识别最相似的三个单个的数字,将识别的三个单个的数字按照左右顺序排列,将排列后的数字作为所述图片的页码。
可选地,
如果页码信息属于0-(1-A)ymax区域内页码信息,则先沿水平线对称变换,然后沿着垂直线对称变换;
如果页码信息属于Axmax-xmax区域内页码信息,先沿45°线对称变换,再沿垂直线变换;
如果页码信息属于0-(1-A)xmax区域内页码信息,先沿45°线对称变换,再沿水平线变换;
其中,所述水平线、垂直线和45°线均是相对于文件扫描处理中建立的二维平面坐标系的线。
第二方面,本发明实施例提供一种调整扫描图像的方向的装置,包括:
存储器包括存储器、处理器、总线以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第一方面的方法。
第三方面,本发明实施例提供一种扫描设备,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面的方法。
本发明实施例具有的有益效果如下:
本发明中通过获取所有可能存在页码信息的区域,进而获取存在页码的第一区域,根据该第一区域,识别当前图片是否属于扫描后的正确的无需旋转操作的图片,如果不是,则按照第一区域的纸张旋转规则旋转图片,得到调整后的图片,实现对每一扫描图片进行纸张方向判断和调整,给资料的整理带来方便和智能化,提高行政事项自助办理事务的效率。
另外,本发明实施例可在识别扫描图片的页码后,按照页码顺序对扫描件进行文件管理,确保扫描文件是正确的,实现文件的快速扫描,且无需后端单独调整,方便行政人员的查看和验证,提高效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明一实施例提供的调整扫描图片的方向的方法的流程示意图;
图2为本发明另一实施例提供的纸张方向的示意图;
图3本发明另一实施例提供的调整扫描图片的方向的方法的部分流程示意图;
图4为本发明一实施例提供的调整扫描图片的方向的装置的示意图;
图5为本发明一实施例提供的纸张放置方向的示意图。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
在以下的描述中,将描述本发明的多个不同的方面,然而,对于本领域内的普通技术人员而言,可以仅仅利用本发明的一些或者全部结构或者流程来实施本发明。为了解释的明确性而言,阐述了特定的数目、配置和顺序,但是很明显,在没有这些特定细节的情况下也可以实施本发明。在其它情况下,为了不混淆本发明,对于一些众所周知的特征将不再进行详细阐述。
如图1所示,图1示出了本发明一实施例提供的调整扫描图片的方向的方法的流程示意图,本实施的方法包括下述步骤。
101、在纸质文件扫描完成后,确定图片的页边距中所有可能存在页码信息的区域,所述图片是扫描所述纸质文件得到的扫描图片;
102、采用二值化处理方式遍历所有可能存在页码信息的区域,获取存在页码的第一区域;
103、判断所述第一区域是否属于正确放置所述纸质文件时对应图片的页码区域;如果是,执行步骤105,否则,执行步骤104;
104、如果不是,则按照对应第一区域的纸张旋转规则旋转所述图片,得到调整后的图片。
105、如果步骤103中第一区域无需旋转,即说明纸质文件在扫描时是摆放正确的,则可识别所述第一区域中的页码信息;
106、判断当前扫描的所有图片的页码顺序是否属于依从小到大顺序排列图片;
107、如果是,则结束;
108、否则,根据每一图片的页码,将所有图片按照从小到大顺序进行排列,并输出排列后的文件。
本实施例中通过获取所有可能存在页码信息的区域,进而获取存在页码的第一区域,根据该第一区域,识别当前图片是否属于扫描后的正确的无需旋转操作的图片,如果不是,则按照第一区域的纸张旋转规则旋转图片,得到调整后的图片,实现对每一扫描图片进行纸张方向判断和调整,给资料的整理带来方便和智能化,提高行政事项自助办理事务的效率。
进一步地,上述实施例可在识别扫描图片的页码后,按照页码顺序对扫描件进行文件管理,确保扫描文件是正确的,实现文件的快速扫描,且无需后端单独调整,方便行政人员的查看和验证,提高效率。
为更好的理解本发明实施例的方案,以下结合图2和图3对本发明的方法进行详细说明。
1、获取扫描后图片中所有可能存在页码信息的区域
1011、采用所述图片左上角为原点,横轴、纵轴分别以一个像素为单位长度建立二维平面坐标系;
1012、获取所述图片的最大纵坐标ymax和最大横坐标xmax;
1013、将Aymax-ymax,0-(1-A)ymax,Axmax-xmax,0-(1-A)xmax作为可能存在页码信息的区域;
所述A取值范围0.90-0.99,所述正确放置的区域。
优选地,A为0.95。
需要说明的是,如图2所示,如果数字在0.95ymax~ymax的区域内存在数字,则纸张放置是正的,即0°,此时不需要矫正。
如果数字在0~0.05ymax的区域内,则纸张放置方向为180°;
如果数字在0.95xmax~xmax的区域内,则纸张方向为90°;
如果数字在0~0.05xmax的区域内,则纸张方向为-90°;
这里的纸张放置方向均是相对于扫描仪的正确方向和反方向来说的。纸张放置方向是依据图5所示的坐标系来定的。本实施例中,建立的坐标系为用户正确看扫描图片时,图片左上角为原点,宽度方向为X 轴线,长度方向为Y方向的二维平面坐标系,如图5所示,其中,阴影区域是扫描后图片的页边距。
2、获取存在页码的第一区域
针对每一个可能存在页码信息的区域,采用下述步骤进行遍历;
例如,针对0.95ymax~ymax的区域
1021、选取离散的行,从选定的第一行开始隔两行进行扫描。
1022、对于每一离散的行,依据线段选取规则分别计算横向或者列向的线段长度;
1023、判断所述线段长度是否满足页码判断条件;
1024、如果满足页码判断条件,则对符合页码判断条件的线段长度识别所述页码,获得存在页码的第一区域。
举例来说,所述步骤1022包括:
针对Aymax-ymax区域,
将线段长度和线段数量初始化为0,像素位移循环从0开始;
从像素点(k,Aymax)开始,如果(k,Aymax)为黑色,并且右边临近点(k+1,Aymax)也为黑色,则线段长度加1;
从像素点(k,Aymax)开始,如果(k,Aymax)为黑色,且(k,Aymax)的右边邻近像素点(k+1,Aymax)是白色像素时,线段断开,保存断开位置,线段数量加1,下一个线段长度也加1;
其中k为0到xmax的像素位移。当k大于等于xmax时,该行的线段扫描结束。转到Aymax+2开始,重复上面的扫描,直到扫描完第ymax 行为止。
针对0-(1-A)ymax区域:
将线段长度和线段数量初始化为0,像素位移循环从0开始;
从像素点(k,0)开始,如果(k,0)为黑色,并且右边临近点(k+1,0)也为黑色,则线段长度加1;
从像素点(k,0)开始,如果(k,0)为黑色,且(k,0)的右边邻近像素点 (k+1,0)是白色像素时,线段断开,保存断开位置,线段数量加1,下一个线段长度也加1;
其中k为0到xmax的像素位移。当k大于等于xmax时,该行的线段扫描结束。转到2行开始,重复上面的扫描,直到扫描完第(1-A)ymax行为止。
针对Axmax-xmax区域,
将线段长度和线段数量nij初始化为0,像素位移k循环从0开始;
从像素点(Axmax,k)开始,如果(Axmax,k)为黑色,并且下方临近点 (Axmax,k+1)也为黑色,则线段长度加1.
从像素点(Axmax,k)开始,如果(Axmax,k)为黑色,且(Axmax,k)的下方邻近像素点(Axmax,k+1)是白色像素时,线段断开,保存断开位置,线段数量加1,下一个线段长度也加1;
其中k为0到ymax的像素位移。当k大于等于ymax时,该列的线段扫描结束。转到Axmax+2列开始,重复上面的扫描,直到扫描完第xmax列为止。
针对0-(1-A)xmax区域,
将线段长度和线段数量nij初始化为0,像素位移k循环从0开始;
从像素点(0,k)开始,如果(0,k)为黑色,并且下方临近点(0,k+1)也为黑色,则线段长度加1.
从像素点(0,k)开始,如果(0,k)为黑色,且(0,k)的下方邻近像素点 (0,k+1)是白色像素时,线段断开,保存断开位置,线段数量加1,下一个线段长度也加1;
其中k为0到ymax的像素位移。当k大于等于ymax时,该列的线段扫描结束。转到Axmax+2列开始,重复上面的扫描,直到扫描完第xmax列为止。
在另一可选的实现方式中,所述1023包括:
页码判断第一条件为:min<nij<max。
其中min,max根据字体大小设定的预设值,ni表示第i行,第j段线段的长度。
1023a、对于线段长度符合所述页码判断第一条件的线段,判断符合所述页码判断第一条件的线段是否集中,
1023b、如果有预设数量的线段集中在预设框内,则确定线段集中区域存在页码数字。
在另一可选的实现方式中,步骤1024包括:
针对单个数字的页码:
按照第一公式将所述线段集中区域中的像素与预设标准数字的每一个数字的像素进行匹配,
获取匹配结果中相似度最高的数字,将相似度最高的数字作为所述图片的页码;
第一公式为:
k为相似度最高的数字,vark是相似度,IO(i,j)表示标准数字中每一个数字的像素,I(i,j)表示所述线段集中区域中的像素,i为横坐标,j为纵坐标;
或者,
针对两个数字的页码,从左到右按照所述单个数字的页码的方式识别最相似的两个单个的数字,将识别的两个单个的数字按照左右顺序排列,将排列后的数字作为所述图片的页码;
或者,
针对三个数字的页码,从左到右按照所述单个数字的页码的方式识别最相似的三个单个的数字,将识别的三个单个的数字按照左右顺序排列,将排列后的数字作为所述图片的页码。
另外,在实际应用中,针对页码的识别,前提条件:纸张在最下方均有页码。
①建立坐标,以图像左上角为原点,以横向和纵向为轴方向,以一个像素为单位长度建立直角坐标系,这样图像中任意一个像素位置可以用(x,y)表示,x表示横轴,y表示纵轴。
②拍摄或扫描的图像最大纵坐标为ymax,最大横坐标为xmax,那么页码的数字在0.95ymax~ymax之间。
③在0.95ymax~ymax之间查找符合条件的线段,方法步骤如下:
01、从像素点(0,0.95ymax)开始,到(xmax,0.95ymax)结束,计算黑色线段的段数和长度,计算步骤如下:
i=0;j=0
fork=0;k<=xmax;k++
从像素点(k,0.95ymax)点开始,如果点(k,0.95ymax)为黑色,并且这个点
的右边邻近点(k+1,0.95ymax)也是黑色,则线段长度加1:
ifI(k,y)==0&&I(k+1,y)==0
nij++=0
从像素点(k,0.95ymax)为黑色,并且这个点的
右边邻近点(k+1,0.95ymax)是白色,则
线段断开,保存断开位置,线段数量加1,新线段
的长度也加1:
elseif I(k,y)==0&&I(k+1,y)==255
krij=k
nij++++=0
如果线段到了点(xmax,0.95ymax)则终止对该行的计算。
end if
end for
其中,I(x,y)表示图像中坐标为(x,y)的像素灰度值,k为坐标的位移量。
02、从像素点(0,0.95ymax)开始,到(0,ymax)结束,每一次纵坐标增加2个像素长度,循环01中的操作。
④判断是否有页码:
01、计算③中线段长度符合条件的线段,用公式表示为:
min<nij<max
02、判断符合条件01的这些线段是否集中,判断方法为:
用max×max像素大小的框在0.95ymax~ymax的区域内扫描(注意这里的扫描含义是平移的意思,与文件的扫描意义不一样),如果max×max 框再存某个位置,框内包含20条符合条件01的线段,则说明此处有可能页码数字,否则没有页码数字。
03、删除明显不是页码的方块
判断方法为:在max×max框的线段中,统计线段长度大于等于 0.4max的数量,如果线段的数量大于0.3max,则该处不是页码,可能是文字,或者是符号。
04、删除重叠的框
删除方法为:在有重叠的框中,找出各自方框中最长的线段,然后保留最长线段所在的框,其余的方框都不做考虑。
⑤页码的识别
识别的方法采用了一种快速数字匹配的方法,方法步骤如下:
01、选取标准数字的大小,正确数字是标准宋体(0,1,2,3,4, 5,6,7,8,9),字体的大小跟④中框的大小一致,即框要刚好包含数字。标准数字的存储格式是max×max的数字图像格式(jpg,png等)。
02、让④中的方框里的数字与01中标准数字进行匹配,匹配方法为:
找到最小的vark,那么待匹配的数字跟数字k最相似,我们认为这个方框的数字就是k。
其中总I0(i,j)表示标准数字方框中的像素,I(i,j)表示④中方框数字。在这里方框都是重新建立坐标,以一个像素为单位距离,i,j分别代表横纵坐标。
03、如果页码为两位数和三位数,那么页码是02中数字的组合,组合顺序按照方框在图像中从左到又出现的位置进行组合。例如图像的页码出现了两个数字1,2,在图像中数字1在数字2的左,那么页码就是 12.
3、判断所述第一区域是否属于正确放置所述纸质文件时对应图片的页码区域
本实施例中纸张方向判断,通常纸张只有四个方向:0°,90°, 180°,-90°。
如果页码信息属于0-0.05ymax区域内页码信息,则先沿水平线对称变换,然后沿着垂直线对称变换;
如果页码信息属于095xmax-xmax区域内页码信息,先沿45°线对称变换,再沿垂直线变换;
如果页码信息属于0-Bxmax区域内页码信息,先沿45°线对称变换,再沿水平线变换。
也就是说,1)如果数字在0.95ymax~ymax的区域内存在数字,则纸张放置是正的,即0°。此时不需要矫正。
2)如果数字在0~0.05ymax的区域内,则纸张放置方向为180°。
矫正方法为:先沿水平线对称变换,然后沿着垂直线对称变换
I(x,y)→IB1(x,ymax);IB1(xB1max-x,y)→IB2(x,y)
3)如果数字在0.95xmax~xmax的区域内,则纸张方向为90°
矫正方法为:先沿45°线对称变换,再沿垂直线变换
I(x,y)→IC1(y,x);IC1(xB1max-x,y)→IC2(x,y)
4)如果数字在0~0.05xmax的区域内,则纸张方向为-90°
矫正方法为:先沿45°线对称变换,再沿水平线变换
I(x,y)→ID1(x,y);ID1(x,yD1max-y)→ID2(x,y)
其中xNMUmax,yNMUmax表示图像NUM的最大横坐标和最大纵坐标。
其中,所述水平线、垂直线和45°线均是相对于文件扫描处理中建立的二维平面坐标系的线。
本实施例中,建立的坐标系为用户正确看扫描图片时,图片左上角为原点,宽度方向为X轴线,长度方向为Y方向的二维平面坐标系,如图5所示,其中,阴影区域是扫描后图片的页边距。
4、顺序调整
如果文件有很多页,根据旋转后每一张图片的纸张页码,判断纸张按照顺序是否依次增加的。如果不是,则进行升序排列。再与原来的顺序进行对比,就可以知道顺序错乱的是哪几页。这样也方便纸质文件顺序的矫正。
另一方面,本发明实施例提供一种调整扫描图像的方向的装置,如图4所示,本实施例的装置包括:存储器包括存储器、处理器、总线以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第一方面的方法。
第三方面,本发明实施例提供一种扫描设备,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面的方法。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
最后应说明的是:以上所述的各实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或全部技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。