背景技术
目前,图像文字识别技术已应用到很多领域,该技术就是把文字信息从一幅图片尤其是从电子设备显示的图片中识别出来。但对机器来说识别这些文字信息就非常困难,尤其对某些易混淆的文字信息,例如图片上的数字0和字母O、数字1和字母l,如果没有上下文信息就很难辨别。因此,目前常见的图像文字识别技术无法做到100%的识别率,而且由于需要考虑多种字体,识别速度也比较慢。
另外,在测试工作中,常常需要检查被测设备的显示内容是否正确,这对于手工测试没有什么难度,但对于自动化测试而言,却是一道难以逾越的鸿沟,因为自动化测试首先要求的就是精确,即使文字识别精确度达到99%,其测试结果都是不可信的;其次要求速度快,如果每识别一幅图片需要几秒钟甚至十几秒钟,对于某些要求速度的具体测试来说,就无法胜任了。
为了提高图像文字识别的精度和速度,现有技术常采用以下三种方法:
一.直接将预期的显示效果事先做成图片,通过该图片和实际显示图片的比对,完成对目标显示内容的自动检查。该检查的效果是像素级的100%精确匹配。但采用这种方法时,由于每个检测步骤都需要事先准备预期图片,不但工作量大,而且常常要等到被测设备成熟稳定之后,才能获得这些图片,这种工期上的滞后会导致测试周期加长,风险可控程度变差;另外,还有某些显示内容无法单纯通过图片比对的方式自动检查,例如某些涉及时间显示的内容,就无法事先做出精确的对比图片。
二.基于文字规则,或者采用神经网络等方法,事先对每种字符做出大量的分析和处理,并在识别过程中采用图像模糊处理。这类方法目前较多为商业应用,应用范围很广。但这类方法需要在文字图形分析上做大量工作,实现方式非常复杂。另外,由于识别过程中需要对图像采用模糊处理,无法保证很高的识别准确率,尤其对于小字体,识别率更低。
三.将图像以常见的水平扫描顺序存储数据,由于是先水平扫描再垂直扫描,后续简称为HV扫描方式,扫描结果数据为二进制形式,再对扫描结果进行匹配处理,进行图像文字识别。这种方式将二维的图像数据一维化,可以使用常见的一维数据的处理方式来处理图像数据,达到识别的目的。但这种方法的缺点在于:由于每个字符数据被分割成不相连的数段,对后续的匹配处理造成极大障碍。
因此,目前缺少一种精确、快速的图像文字识别方法及装置。
发明内容
本发明实施例提供一种图像文字识别方法及装置,以实现对图像文字的精确、快速识别。
本发明实施例提供了一种图像文字识别方法,该方法具体包括:
按照字符的高度逐列扫描首行字符,扫描完该行字符后再逐列扫描下行字符,直至扫描完所有的字符;
将扫描后的字符信息与数据库中存储的字符信息进行匹配,将匹配后的字符信息转换为与该字符信息对应的文字。
上述方法,较好地提高了图像文字识别的准确率和识别速度,降低了开发速度。
本发明实施例提供了一种图像文字识别装置,该装置具体包括:
获取模块,用于获取字符图形信息;
存储模块,用于将获取到的字符图形信息存储在数据库中;
扫描模块,用于按照字符的高度逐列扫描首行字符,扫描完该行字符后再逐列扫描下行字符,直至扫描完所有的字符;
转换模块,用于将扫描后的字符信息与数据库中存储的字符信息进行匹配,将匹配后的字符信息转换为与该字符信息对应的文字。
上述装置,较好地提高了图像文字识别的准确率和识别速度,降低了开发速度。
下面通过附图和实施例,对本发明实施例的技术方案做进一步的详细描述。
具体实施方式
如图1所示,为本发明图像文字识别方法实施例的流程图,该方法具体包括:
步骤101、获取字符图形信息,并将上述字符图形信息存储在数据库中;
字符图形信息的获取可以通过多种方式实现,例如可以直接从字库中获取,也可以主动抓取每个字符显示图像;为了使扫描后的字符图形更好地与数据库中的字符图形相匹配,应将获取的字符图形以经逐列扫描后的扫描结果的形式存储在数据库中;但上述步骤为可选步骤,若字符图形信息已经存储在数据库中,则不需要执行此步骤;
步骤102、按照字符的高度逐列扫描首行字符,扫描完该行字符后再逐列扫描下行字符,直至扫描完所有的字符;
对于用于显示文字信息的电子设备,欲显示的字符的高度可以预先获知,按照字符的高度逐列扫描首行字符,扫描完该行字符后再逐列扫描下行字符,直至扫描完所有的字符;如图2所示,为本发明带有文字图像实施例的示意图,此图像中每行文字的高度为16b it,因而按照16比特的高度逐列扫描每一列像素,直至水平扫描完首行文字“汉字”,“汉字”的字符信息如下:
0000100000100000000001100010000010000000011111100110000110000000000001100000001000100000000001000011100000000100001001110000100000100000110100000010000000100000001000001101000000100111000010000011100000001100001000000000011000000000000001000000000000000000000000000000000000001000010000000011 0000010000000010010001000000001001000100000000100100010000101010010001000 0010110010011111110001001010100000000100110010000000010010001000000001000 0001000000001010000100000000110000010000000000000001000000000000000000000 0
然后再逐列扫描下行文字“字汉”,“汉字”的字符信息如下:
0000000000000000000010000100000000110000010000000010010001000000001001000 1000000001001000100001010100100010000010110010011111110001001010100000000 1001100100000000100100010000000010000001000000001010000100000000110000010 00000000000000100000000000000000000000000100000100000000001100010000010000000011111100110000110000000000001100000001000100000000001000011100000000100001001110000100000100000110100000010000000100000001000001101000000100111000010000011100000001100001000000000011000000000000001000000000000000000
其中,标有下划线部分的数据描述的是“字”这个字符,未标有下划线部分的数据描述的是“汉”这个字符;
另外,在扫描字符时,若一行中各字符的高度不同,则按照该行字符的最大高度逐列扫描该行字符;若各行字符之间的间距不同时,则按照字符的高度逐列扫描首行字符中的首行像素,若首行像素的扫描结果为空,则继续扫描该首行字符中的下行像素,直至扫描到该行像素中有待识别的内容,然后按照字符的高度逐列扫描完该行像素所在的该行字符后再逐列扫描下行字符中的首行像素,直至扫描完所有的字符;若字符中间夹有其他特殊符号,例如闪烁的光标,则可直接忽略;
步骤103、将扫描后的字符信息与数据库中存储的字符信息进行匹配,将匹配后的字符信息转换为与该字符信息对应的文字。
在扫描后的字符信息中,判断出扫描后无待识别内容的两列像素间的宽度小于设定宽度,则将上述两列像素间的待识别内容识别为空格;另外,将扫描后的字符信息与数据库中存储的字符信息进行匹配,若匹配后的字符信息与多种文字相对应,则将匹配后的字符信息转换为字符长度最长的文字,例如若扫描后的字符信息可以识别为两个单引号,也可以识别为一个双引号,则被识别为一个双引号;
上述图像文字识别方法实施例,通过将获取的字符信息以经逐列扫描后的扫描结果的形式存储在数据库中,使扫描后的图像文字识别速度快,采用按照字符的高度逐列扫描首行字符,扫描完该行字符后再逐列扫描下行字符,直至扫描完所有的字符的方式,使每个字符数据被分割成不连续的数段,从而较好地提高了图像文字识别的准确率和识别速度,降低了开发速度。
如图3所示,为本发明图像文字识别装置实施例的结构示意图,该装置具体包括:获取模块1,用于获取字符图形信息;存储模块2,用于将获取到的字符图形信息存储在数据库中;扫描模块3,用于按照字符的高度逐列扫描首行字符,扫描完该行字符后再逐列扫描下行字符,直至扫描完所有的字符;转换模块4,将扫描后的字符信息与数据库中存储的字符信息进行匹配,将匹配后的字符信息转换为与该字符信息对应的文字。
其中,上述文字包括汉字、字母、数字、空格和各种标点符号等,上述存储模块以将字符图像经逐列扫描后的扫描结果的形式存储在数据库中。
另外,上述转换模块可以具体为识别模块,用于当扫描后无待识别内容的两列像素间的宽度小于设定宽度,则将上述两列像素间的待识别内容识别为空格;上述转换模块还可以具体为选择转换模块,用于将扫描后的字符信息与数据库中存储的字符信息进行匹配,若匹配后的字符信息与多种文字相对应,则将匹配后的字符信息转换为字符长度最长的文字。
上述装置,通过获取模块获取字符信息,并通过存储模块存储获取到的字符图形信息,然后利用扫描模块扫描图像中的所有字符信息,最后通过转换模块将扫描后的字符信息与数据库中存储的字符信息进行匹配,将匹配后的字符信息转换为与其对应的文字,上述装置可以用于自动化测试中对于中间显示信息的正确性检查,例如检查当前显示时间是否为12小时制的显示格式,或者当前显示的告警信息是否正确等;也可以用于识别计算机上拷屏得到一副图像中的文字信息;还可以使字库提供商在不增加较大成本的基础上,同时提供自己所有字体的图像文字识别技术。
上述图像文字识别装置实施例,使每个字符数据被分割成不连续的数段,并且存储模块存储字符图形信息的存储格式与扫描模块扫描字符图形信息的结果相同,从而较好地提高了图像文字识别的准确率和识别速度,降低了开发速度。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。