一种文档图像倾斜检测的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种文档图像倾斜检测的方法和装置。
背景技术
倾斜文档图像,是指文献在电子化过程(扫描等)中,由于人为等外界因素影响从而照成扫描的文档与图像正边成一定角度,即倾斜现象,这种图像称之为倾斜文档图像。其中,文档图像倾斜检测是OCR(Optical Character Recognition图型识别)之图像预处理中至关重要的一步。当文档图像存在较严重的文字行倾斜时,如果不对其进行倾斜检测并进行倾斜矫正,那么检测到的文字行可能包含隶属于其它文字行的图像信息,这将导致最终OCR识别结果准确率下降。但是,倾斜检测一直还是非常具有挑战性的问题,尤其是包含图形,图表,数字或各种字体大小的文档图像倾斜检测。
目前,倾斜检测算法可以分为四类:投影法、霍夫变换法、近邻聚类法和行间互相关法。其都存在相应的问题,主要有:1、计算量大,运行时间过长。如:投影法、霍夫变换法其本质都是基于图像特征投影、计算方差等,该过程计算非常耗时。2、算法检测精度不高。如:近邻聚类法,因其基于特征联通域分析与合并,只有文本行接近水平的情况下,才有较好的检测结果。3、检测方法对不同的文档版面适应性差。如:行间互相关法,只有知道文档的具体版面是水平还是垂直,才能进行较准确的计算。对于混合版面,该方法更是难以处理。4、对图像特征提取质量要求过高。现有传统的检测方法都是基于图像特征进行检测的,当图像质量下降时,图像特征检测结果随之下降,最终影响倾斜检测结果准确性。
发明内容
有鉴于此,本发明实施例提供一种文档图像倾斜检测的方法和装置,能够是基于图像特征的信号能量检测倾斜角,支持多种文档版面,不限定文档为水平、垂直、或混合版面,支持多种图像特征,以及提高了检测精度高和计算速度。
为实现上述目的,根据本发明实施例的一个方面,提供了一种文档图像倾斜检测的方法。
本发明实施例的文档图像倾斜检测的方法包括:提取文档图像的图像特征点;根据预设的旋转粒度和旋转范围,对所述图像特征点进行多次旋转操作,以及确定信号能量集合;所述信号能量集合中包括每次旋转操作的信号能量值;从所述信号能量集合中筛选出最大的信号能量值,确定所述最大的信号能量值对应的旋转操作的旋转角度,该旋转角度为文档图像倾斜角度。其中,该旋转角度是指每次旋转操作相较于初始位置的旋转角度,
可选地,提取文档图像的图像特征点的步骤包括:对所述文档图像进行边缘检测处理、灰度处理或二值化处理;截取所述文档图像的感兴趣区域;根据所述边缘处理、灰度处理或二值化处理的结果,确定所述感兴趣区域的图像特征点为文档图像的图像特征点。
可选地,根据预设的旋转粒度和旋转范围,对所述图像特征点进行多次旋转操作,以及确定信号能量集合的步骤包括:基于创建的坐标系,确定每个图像特征点的坐标;根据预设的旋转粒度和旋转范围,对所述图像特征点进行多次旋转操作;对于每次旋转操作,记录每个图像特征点旋转操作后的坐标;根据每次旋转操作后的坐标,确定出每次旋转操作的信号能力值,以得到信号能量集合。
可选地,根据每次旋转操作后的坐标,确定出每次旋转操作的信号能力值的步骤包括:根据以下信号能量函数,确定每次旋转操作的信号能力值:
Energy_X=sum(HIST_X[i]*HIST_X[i]);
Energy_Y=sum(HIST_Y[i]*HIST_Y[i]);
Energy_XY=Energy_X*Energy_Y;
其中,Energy_XY为信号能力值,HIST_X[i]为每次旋转操作后图像特征点的横坐标,HIST_Y[i]为每次旋转操作后图像特征点的纵坐标,i为第i个图像特征的序号表示。
可选地,在提取文档图像的图像特征点之前,还包括:根据预设的尺寸,对接收的文档图像进行放缩处理。
可选地,在根据预设的旋转粒度和旋转范围,对所述图像特征点进行多次旋转操作,以及确定信号能量集合之前,还包括:以旋转角度为索引,将图像特征点对应于旋转角度的坐标存储在查找表中;
确定信号能量集合的步骤包括:根据当前旋转角度,在所述查找表中确定该当前旋转角度对应的坐标;根据该当前旋转角度对应的坐标,确定出该当前旋转角度的信号能力值,以得到信号能量集合。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种文档图像倾斜检测的装置。
本发明实施例的文档图像倾斜检测的装置包括:特征点提取模块,用于提取文档图像的图像特征点;
信号能力值确定模块,用于根据预设的旋转粒度和旋转范围,对所述图像特征点进行多次旋转操作,以及确定信号能量集合;所述信号能量集合中包括每次旋转操作的信号能量值;
倾斜角度确定模块,用于从所述信号能量集合中筛选出最大的信号能量值,确定所述最大的信号能量值对应的旋转操作的旋转角度,该旋转角度为文档图像倾斜角度。
可选地,所述特征点提取模块还用于,对所述文档图像进行边缘检测处理、灰度处理或二值化处理;截取所述文档图像的感兴趣区域;根据所述边缘处理、灰度处理或二值化处理的结果,确定所述感兴趣区域的图像特征点为文档图像的图像特征点。
可选地,所述信号能力值确定模块还用于,基于创建的坐标系,确定每个图像特征点的坐标;根据预设的旋转粒度和旋转范围,对所述图像特征点进行多次旋转操作;对于每次旋转操作,记录每个图像特征点旋转操作后的坐标;根据每次旋转操作后的坐标,确定出每次旋转操作的信号能力值,以得到信号能量集合。
可选地,所述信号能力值确定模块还用于,根据以下信号能量函数,确定每次旋转操作的信号能力值:
Energy_X=sum(HIST_X[i]*HIST_X[i]);
Energy_Y=sum(HIST_Y[i]*HIST_Y[i]);
Energy_XY=Energy_X*Energy_Y;
其中,Energy_XY为信号能力值,HIST_X[i]为每次旋转操作后图像特征点的横坐标,HIST_Y[i]为每次旋转操作后图像特征点的纵坐标,i为第i个图像特征的序号表示。
可选地,还包括放缩处理模块,用于根据预设的尺寸,对接收的文档图像进行放缩处理。
可选地,还包括创建查找表模块,用于以旋转角度为索引,将图像特征点对应于旋转角度的坐标存储在查找表中;
所述信号能力值确定模块还用于,根据当前旋转角度,在所述查找表中确定该当前旋转角度对应的坐标;根据该当前旋转角度对应的坐标,确定出该当前旋转角度的信号能力值,以得到信号能量集合。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种电子设备。
本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项的文档图像倾斜检测的方法。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现上述任一项的文档图像倾斜检测的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为在文档图像没有倾斜的情况下,其信号能量是最大的,所以可在旋转范围(例如90度范围)内按照设置的旋转粒度(例如每次旋转0.01度)多次旋转文档图像,确定可将文档图像旋转至正常位置。然后,分别计算多次旋转的信号能量,并筛选出最大的信号能力值(表示已旋转至正常位置),该旋转角度即为文档图像的倾斜角度。因此,可检测的倾斜角度区间大,并且对文档版面没有要求,可支持文档版面多样性,不限定文档为水平、垂直、或混合版面。以及,本发明实施例是基于信号能量确定文档图像的旋转角度,可支持多种图像特征,如边缘特征、二值化特征、灰度特征等,检测进度高、计算速度快。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的文档图像倾斜检测的方法的主要流程的示意图;
图2是文档图像在各个倾斜角度下的信号能量极坐标图的示意图;
图3是根据边缘特征实现文档图像倾斜检测的方法的示意图;
图4是根据二值特征实现文档图像倾斜检测的方法的示意图;
图5是根据灰度特征实现文档图像倾斜检测的方法的示意图;
图6是根据本发明实施例的文档图像倾斜检测的装置的主要模块的示意图;
图7是本发明实施例可以应用于其中的示例性系统架构图;
图8是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的文档图像倾斜检测的方法的主要流程的示意图,如图1所示,本发明实施例的文档图像倾斜检测的方法主要包括:
步骤S101:提取文档图像的图像特征点。具体的,对文档图像进行边缘检测处理、灰度处理或二值化处理,并且截取文档图像的感兴趣区域。根据边缘处理、灰度处理或二值化处理的结果,确定感兴趣区域的图像特征点为文档图像的图像特征点。在本发明实施例中,边缘检测处理可通过Canny边缘识别算法实现。以及,在后续旋转计算的过程中,可基于边缘检测处理、灰度处理或二值化处理的特征,因此,可支持多种图像特征,解决了现有技术中每种检测方法只能基于一种处理特征实现。
在提取文档图像的图像特征点之前,根据预设的尺寸,对接收的文档图像进行放缩处理。例如,预设的尺寸为512*512,则将该文档图像的最大边调整为512。通过该放缩处理的过程,可减少计算量。
步骤S102:根据预设的旋转粒度和旋转范围,对图像特征点进行多次旋转操作,以及确定信号能量集合。信号能量集合中包括每次旋转操作的信号能量值。信号能量,相对于将图像倾斜旋转转化为电流信号,计算其能量,为领域内的基本概念或称通用概念。图2是文档图像在各个倾斜角度下的信号能量极坐标图的示意图,如图2所示,在文档图像没有倾斜的情况下,其信号能量是最大的。所以可在旋转范围(例如90度范围)内按照设置的旋转粒度(每次旋转0.01度)多次旋转文档图像,确定可将文档图像旋转至正常位置。
具体的,基于创建的坐标系,确定每个图像特征点的坐标;根据预设的旋转粒度和旋转范围,对图像特征点进行多次旋转操作;对于每次旋转操作,记录每个图像特征点旋转操作后的坐标;根据每次旋转操作后的坐标,确定出每次旋转操作的信号能力值,以得到信号能量集合。例如,旋转范围预设为90度范围:(-45度,+45度),旋转粒度设置为0.01,即将文档图像逆时针方向和顺时针方法分别旋转45度,每次旋转0.01度,总共旋转9000次。对于每次旋转,可确定每个图像特征点的旋转后的位置,进而得到图像特征点的的横坐标集合HIST_X,该集合内包括HIST_X[1]、HIST_X[2]、…、HIST_X[n],n为图像特征点的个数。同样,得到图像特征点的纵坐标集合HIST_Y,该集合内包括HIST_Y[1]、HIST_Y[2]、…、HIST_Y[n]。
根据每次旋转操作后的坐标,确定出每次旋转操作的信号能力值的步骤包括:根据以下信号能量函数,确定每次旋转操作的信号能力值:
Energy_X=sum(HIST_X[i]*HIST_X[i]);
Energy_Y=sum(HIST_Y[i]*HIST_Y[i]);
Energy_XY=Energy_X*Energy_Y;
其中,Energy_XY为信号能力值,HIST_X[i]为每次旋转操作后图像特征点的横坐标,HIST_Y[i]为每次旋转操作后图像特征点的纵坐标,i为第i个图像特征的序号表示。
步骤S103:从信号能量集合中筛选出最大的信号能量值,确定最大的信号能量值对应的旋转操作的旋转角度,该旋转角度为文档图像倾斜角度。
在根据预设的旋转粒度和旋转范围,对图像特征点进行多次旋转操作,以及确定信号能量集合之前,以旋转角度为索引,将图像特征点对应于旋转角度的坐标存储在查找表中。确定信号能量集合的过程中,根据当前旋转角度,在查找表中确定该当前旋转角度对应的坐标;根据该当前旋转角度对应的坐标,确定出该当前旋转角度的信号能力值,以得到信号能量集合。通过创建查找表,即将文档图像每次旋转后的坐标值提前计算出,并以旋转角度为索引存储。则在计算信号能量时,可直接查表确定每个图像特征在旋转一定角度后的坐标,不用实时计算每次旋转后的坐标。
例如:旋转粒度为0.01度,预设的尺寸为512*512,查找表可命名为xy_sin_theta_map[512][9001]。该查找表是一个二维矩阵,第一位为特征点的初始坐标(x0,y0),其中由于预设的尺寸为512*512,则x0、y0的取值范围为[0,511]。第二维为特征点的旋转角度,由于旋转粒度为0.01度,为便于后续通过整数查找,将该旋转角度扩大100倍。即,索引0代表旋转角度为0度,索引1代表旋转角度为0.01度,索引2代表旋转角度为0.02度,…,索引9000代表旋转角度为90度。该查找表中存储的是每个特征点旋转一定角度后的坐标。在明确初始坐标(x0,y0)、旋转角度为θ的情况下,通过三角函数公式即可确定出该特征点在旋转θ后的坐标:(x0*cosθ-y0sinθ,y0*cosθ+x0*sinθ)。例如:初始坐标为(212,300)的特征点,旋转粒度为0.01度,第50次旋转操作相较于初始位置,旋转角度为0.5度。在明确初始坐标(212,300)、旋转角度为0.5的情况下,通过数学计算可确定出该特征点在旋转0.5后的坐标为:[212*cos(0.5)-300*sin(0.5),300*cos(0.5)+212sin(0.5)]。
对于本发明实施例,因为在文档图像没有倾斜的情况下,其信号能量是最大的,所以可在旋转范围(例如90度范围)内按照设置的旋转粒度(每次旋转0.01度)多次旋转文档图像,确定可将文档图像旋转至正常位置。然后,分别计算多次旋转的信号能量,并筛选出最大的信号能力值(表示已旋转至正常位置),该旋转角度即为文档图像的倾斜角度。因此,可检测的倾斜角度区间大,并且对文档版面没有要求,可支持文档版面多样性,不限定文档为水平、垂直、或混合版面。以及,本发明实施例是基于信号能量确定文档图像的旋转角度,可支持多种图像特征,如边缘特征、二值化特征、灰度特征等,检测进度高、计算速度快。
图3是根据边缘特征实现文档图像倾斜检测的方法的示意图,如图3所示,本发明实施例中根据边缘特征实现文档图像倾斜检测的方法主要包括:
步骤S301:基于创建的查找表对文档图像进行放缩处理。创建查找表时,可根据旋转粒度和预设尺寸创建。如果查找表的尺寸为512*512,则将该文档图像的最大边放缩至512,放缩处理后的特点的位置与查找表中特征点的位置对应,进而与查找表对应起来。
步骤S302:通过Canny边缘提取或其它的边缘提取算法提取图像特征,并截取感兴趣区域。该感兴趣区域内包含的边缘点,即为文档图像倾斜检测中所用的图像特征点。
步骤S303:确定图像特征点的初始坐标,以及基于查找表确定每个旋转角度对应的坐标。如果特征提取是采用的是边缘提取算法,则确定的是每个图像特征点的坐标,提取出的图像特征点的值是相同的。
步骤S304:基于上述确定的坐标,计算信号能量。
步骤S305:从信号能量集合中筛选出最大的信号能量值,确定最大的信号能量值对应的旋转操作的旋转角度,该旋转角度为文档图像倾斜角度。
图4是根据二值特征实现文档图像倾斜检测的方法的示意图;
步骤S401:基于创建的查找表对文档图像进行放缩处理。
步骤S402:通过二值化处理算法提取图像特征,并截取感兴趣区域。该感兴趣区域内包含的边缘点,即为文档图像倾斜检测中所用的图像特征点。图像二值化(ImageBinarization)就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。
步骤S403:确定图像特征点的初始坐标,以及基于查找表确定每个旋转角度对应的坐标。
步骤S404:基于上述确定的坐标,计算信号能量。
步骤S405:从信号能量集合中筛选出最大的信号能量值,确定最大的信号能量值对应的旋转操作的旋转角度,该旋转角度为文档图像倾斜角度。
图5是根据灰度特征实现文档图像倾斜检测的方法的示意图;
步骤S501:基于创建的查找表对文档图像进行放缩处理。创建查找表时,可根据旋转粒度和预设尺寸创建。
步骤S502:通过灰度处理算法提取图像特征,并截取感兴趣区域。该感兴趣区域内包含的边缘点,即为文档图像倾斜检测中所用的图像特征点。因为一个像素点的颜色是由RGB三个值来表现的,灰度化是将像素点矩阵中的每一个像素点都满足下面的关系:R=G=B(就是红色变量的值,绿色变量的值,和蓝色变量的值,这三个值相等,“=”的意思不是程序语言中的赋值,是数学中的相等),此时的这个值叫做灰度值,灰度值的范围为0~255。在确定图像特征点时,可通过设置灰度值的阈值筛选出图像特征点。而且,筛选出的图像特征点的灰度值可能不同,可在确定出该图像特征点时进一步存储器灰度值。
步骤S503:确定图像特征点的初始坐标,以及基于查找表确定每个旋转角度对应的坐标。
步骤S504:基于上述确定的坐标,计算信号能量。
步骤S505:从信号能量集合中筛选出最大的信号能量值,确定最大的信号能量值对应的旋转操作的旋转角度,该旋转角度为文档图像倾斜角度。
图6是根据本发明实施例文档图像倾斜检测的装置的主要模块的示意图,如图6所示,本发明实施例的文档图像倾斜检测的装置600包括特征点提取模块601、信号能力值确定模块602和倾斜角度确定模块603。
特征点提取模块601用于,提取文档图像的图像特征点。特征点提取模块还用于,对文档图像进行边缘检测处理、灰度处理或二值化处理;截取文档图像的感兴趣区域;根据边缘处理、灰度处理或二值化处理的结果,确定感兴趣区域的图像特征点为文档图像的图像特征点。
信号能力值确定模块602用于,根据预设的旋转粒度和旋转范围,对图像特征点进行多次旋转操作,以及确定信号能量集合;信号能量集合中包括每次旋转操作的信号能量值。信号能力值确定模块还用于,基于创建的坐标系,确定每个图像特征点的坐标;根据预设的旋转粒度和旋转范围,对图像特征点进行多次旋转操作;对于每次旋转操作,记录每个图像特征点旋转操作后的坐标;根据每次旋转操作后的坐标,确定出每次旋转操作的信号能力值,以得到信号能量集合。
信号能力值确定模块还用于,根据以下信号能量函数,确定每次旋转操作的信号能力值:
Energy_X=sum(HIST_X[i]*HIST_X[i]);
Energy_Y=sum(HIST_Y[i]*HIST_Y[i]);
Energy_XY=Energy_X*Energy_Y;
其中,Energy_XY为信号能力值,HIST_X[i]为每次旋转操作后图像特征点的横坐标,HIST_Y[i]为每次旋转操作后图像特征点的纵坐标,i为第i个图像特征的序号表示。
倾斜角度确定模块603用于,从信号能量集合中筛选出最大的信号能量值,确定最大的信号能量值对应的旋转操作的旋转角度,该旋转角度为文档图像倾斜角度。
文档图像倾斜检测的装置还包括放缩处理模块,用于根据预设的尺寸,对接收的文档图像进行放缩处理。
文档图像倾斜检测的装置还包括创建查找表模块,用于以旋转角度为索引,将图像特征点对应于旋转角度的坐标存储在查找表中。信号能力值确定模块还用于,根据当前旋转角度,在查找表中确定该当前旋转角度对应的坐标;根据该当前旋转角度对应的坐标,确定出该当前旋转角度的信号能力值,以得到信号能量集合。
对于本发明实施例,因为在文档图像没有倾斜的情况下,其信号能量是最大的,所以可在旋转范围(例如90度范围)内按照设置的旋转粒度(每次旋转0.01度)多次旋转文档图像,确定可将文档图像旋转至正常位置。然后,分别计算多次旋转的信号能量,并筛选出最大的信号能力值(表示已旋转至正常位置),该旋转角度即为文档图像的倾斜角度。因此,可检测的倾斜角度区间大,并且对文档版面没有要求,可支持文档版面多样性,不限定文档为水平、垂直、或混合版面。以及,本发明实施例是基于信号能量确定文档图像的旋转角度,可支持多种图像特征,如边缘特征、二值化特征、灰度特征等,检测进度高、计算速度快。
图7示出了可以应用本发明实施例的文档图像倾斜检测的方法或文档图像倾斜检测的装置的示例性系统架构700。
如图7所示,系统架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对用户利用终端设备701、702、703所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。
需要说明的是,本发明实施例所提供的文档图像倾斜检测的方法一般由服务器705执行,相应地,文档图像倾斜检测的装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机系统800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有系统800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取特征点提取模块、信号能力值确定模块和倾斜角度确定模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,特征点提取模块还可以被描述为“提取文档图像的图像特征点的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:提取文档图像的图像特征点;根据预设的旋转粒度和旋转范围,对图像特征点进行多次旋转操作,以及确定信号能量集合;信号能量集合中包括每次旋转操作的信号能量值;从信号能量集合中筛选出最大的信号能量值,确定最大的信号能量值对应的旋转操作的旋转角度,该旋转角度为文档图像倾斜角度。
对于本发明实施例,因为在文档图像没有倾斜的情况下,其信号能量是最大的,所以可在旋转范围(例如90度范围)内按照设置的旋转粒度(每次旋转0.01度)多次旋转文档图像,确定可将文档图像旋转至正常位置。然后,分别计算多次旋转的信号能量,并筛选出最大的信号能力值(表示已旋转至正常位置),该旋转角度即为文档图像的倾斜角度。因此,可检测的倾斜角度区间大,并且对文档版面没有要求,可支持文档版面多样性,不限定文档为水平、垂直、或混合版面。以及,本发明实施例是基于信号能量确定文档图像的旋转角度,可支持多种图像特征,如边缘特征、二值化特征、灰度特征等,检测进度高、计算速度快。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。