本发明涉及一种图像信息快速识别方法,可用于识别图像、图形、汉字、字母、数字、指纹、人脸等目标信息,属于信息识别技术领域。
背景技术:
目前,图像、图形、汉字、字母、数字、指纹、人脸等信息识别是生活中常用且极为关键的技术。现在,在机场、体育场、超级市场等公共场所都安装了监视器,对人群进行监视。例如在机场安装监视系统,以防止恐怖分子登机。例如银行的自动提款机,用户卡片和密码被盗,就会被他人冒取现金。
因此,如何研发一种图像、指纹、人脸等目标信息快速识别方法,以避免上述情况的发生,节省大量工作时间,提高工作效率,是本领域技术人员致力于解决的难题。
技术实现要素:
本发明要解决的技术问题是提供一种能够快速识别图像、图形、汉字、字母、数字、指纹、人脸等目标信息的方法。
为了解决上述技术问题,本发明的技术方案是提供一种图像信息快速识别方法,其特征在于:步骤为:
步骤1:将目标图像信息放大,直到图像被放大到使得图像上的信息由像素单位组成的,随后将白色像素设置为第一值,将非白色像素设置为第二值,以得到由第一值和第二值组成的目标图像的数值矩阵或序列;
步骤2:安装步骤1的方法,建立包含各种图像信息的数据库,所述数据库通过由第一值和第二值组成的参考数值矩阵或序列表示参考图像信息;
步骤3:所述目标图像的数值矩阵或序列为一维数组时,将目标图像的一维数组划分为多份,将数据库中的参考图像的一维数组也划分为相同份数,然后将目标图像与参考图像的一维数组整体的和及相应位置的各份的和分别进行对比,对比成功则再进一步详细对比份内的第一值和第二值的内容,直到完全对比成功读取即可;
所述目标图像的数值矩阵或序列为二维数组时,将其所有行并成一行,变成一维数组,再用一维数组的方法识别;或者将二维数组的各行分别看成一个一维数组,再用一维数组的方法依次识别二维数组的各行。
优选地,所述步骤1中,将白色像素设置为0、非白色像素设置为1,或将白色像素设置为1、非白色像素设置为0,这样等于整张图像上的信息是由许多的0和1有规则排序成数组显示出来的。
更优选地,所述步骤3中,将目标图像的一维数组划分成{a、b、c}三形式,a、b、c分别表示目标图像的一维数组整体的和,目标图像的一维数组前半部分的和,目标图像的一维数组后半部分的和;数据库中的参考图像的一维数组也按相同的方法划分,将目标图像的a、b、c与数据库中的参考图像的a、b、c对比,对比成功则再进一步详细对比a、b、c内的0和1的内容,直到完全对比成功读取即可。
进一步地,通过先粗略对比,粗略对比成功再详尽对比的方式,避免了对数据库中的各参考图像都详尽对比识别,提高了信息搜素匹配度和搜素效率,节省了匹配时间。
本发明通过0~1的数组来表示图像信息,图像分成多份,利用数组整体的和及各份的和分别进行对比,对比成功则再进一步详细对比;通过先粗略对比,粗略对比成功再详尽对比的方式,避免了对数据库中的各参考图像都详尽对比识别,提高了信息搜素匹配度和搜素效率,节省了匹配时间,能够快速识别图像、图形、汉字、字母、数字、指纹、人脸等目标信息。
附图说明
图1为图像信息快速识别的一维数组识别方法流程图;
图2为图像信息快速识别的二维数组识别方法流程图;
图3为汉字“四”作为具体识别对象的示意图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
图1为图像信息快速识别方法的一维数组识别方法的流程图,该方法包括以下步骤:
第一步s1:将目标信息图片放大,直到图片被放大到使得图片上的信息由像素单位组成的,随后将白色像素设置为第一值,将非白色像素设置为第二值,以得到由第一值和第二值组成的图片数值矩阵或序列(在本发明实施例中,将白色像素的设置为0,非白色像素的设置为1,这样等于整张图片上的信息是由许多的0和1有规则排序成数组显示出来的。设图片信息的一维数组(矩阵)为[1010010010......10110011010]。
同时,建立用于识别图像、图形、汉字、字母、数字、指纹、人脸信息的数据库,所述数据库包括由第一值和第二值组成的参考数值矩阵或序列表示的参考图像、图形、汉字、字母、数字、指纹、人脸信息。
第二步s2:将图片信息的一维数组划分成{a、b、c}形式,a、b、c分别表示该数组整体的和,该数组前半部分和,该数组后半部分和,只需将a、b、c与数据库中的a、b、c对比,对比成功则读取即可;
第三步s3:或将一维数组划分成{a、b1、b2、c1、c2}形式,a、b1、b2、c1、c2分别表示该数组整体的和,该数组前半部分的前半部分和,该数组前半部分的后半部分和,该数组后半部分的前半部分和,该数组后半部分的后半部分和,只需将a、b1、b2、c1、c2与数据库中的a、b1、b2、c1、c2对比,对比成功则读取即可;
第四步s4:或以此类推,将图片信息的一维数组划分成[1010010010......10110011010][a、n1、n2、…nk]形式,a、ni(i=1,2…,k)分别表示该数组整体的和,该数组第ni部分和,先将[a、n1、n2、…nk]与数据库中各一维数组的a、n1、n2、…nk对比,对比成功再进一步详细对比,详细比较成功后则识别目标。
对于二维数组(矩阵),可以将其所有行并成一行,变成一维数组,从而用一维数组的方法识别。也可用二维数组的特殊方法进行识别,具体如图2。
步骤1:设原图片信息组成为m行、n列的二维数组(矩阵)
[1010010010......10110011010]
[1011010011......10110111010]
......
[0011010110......01110111010]
步骤2:将二维数组(矩阵)划分成
[1010010010......10110011010][a1、b1、c1]
[1011010011......10110111010][a2、b2、c2]
[0011010110......01110111010][ak、bk、ck]
[d1、d2、......dn][ak1、bk1、ck1]
[e1、e2、......en][ak2、bk2、ck2]
[f1、f2、......fn][ak3、bk3、ck3]
d1,d2(j=1,2...,n),......,dn分别表示该数组第j列的和;e1,e2(j=1,2...,n),......,en分别表示该数组第j列前半部分和;f1,f2(j=1,2...,n),......,fn分别表示该数组第j列后半部分和;其ai、bi、ci(i=1,2...,k,k1,k2,k3)分别表示该数组第i行整体的和,前半部分和,后半部分和;先将ai、bi、ci与数据库中各二维数组的ai、bi、ci对比,对比成功再进一步详细对比,详细比较成功后则识别目标。
步骤3:或将二维数组(矩阵)划分成
[1010010010......10110011010][a1、n11、n12、…n1k]
[1011010011......10110111010][a2、n21、n22、…n2k]
……
[0011010110......01110111010][am、nm1、nm2、…nmk]
[b11、b12、......b1n]
[b21、b22、......b2n]
……
[bx1、bx2、......bxn]
b11,b12,…,b1n(j=1,2,…,n)分别表示该数组第j列的和;bi1,bi2(i=2,3…,s,j=1,2,…,n),……,bsn分别表示该数组第j列第i部分和;其中a、nuv(v=1,2…,k<n,u=1,2…,1<m,)分别表示该数组第u行第v部分和;先将bij,auv分别与数据库中各二维数组的bij,auv对比,对比成功再进一步详细对比,详细比较成功后则识别目标。
综上,本发明首先将数组(矩阵)划分成{a、b、c}形式,其a、b、c分别表示该数组整体的和,该数组前半部分和,该数组后半部分和,将a、b、c与数据库中的a、b、c对比,即通过矩阵与矩阵对比,不成功则继续与数据库中的其他信息对比,直到找到相对应的信息,对比成功则读取即可。这种图像、图形、汉字、字母、数字、指纹、人脸等目标图片信息进行了第一轮的“和”快速对比,剔除了大量不必要的详尽对比识别,提高了信息搜素匹配度和搜素效率,节省了匹配时间。
在本发明实施例中,将这些0和1通过放大图片的方式一个一个找出来,对于目标信息,只需要识别汉字和字母,还有数字,所以本发明将建立专门的字库,通过识别图片上的信息,跟字库中的汉字、字母、数字进行对比,然后读取出相对应的信息,这样就可以提取出图片中的信息,即同理可识别图像、指纹、人脸等目标信息。
如图3所示汉字“四”,格式为宋体小四,将其截图放大就得到由16*16的很多白块和黑快组成,将白块设为0,黑块设为1,得到如下:
二维数组(矩阵):
0000000000000000
0000000000000000
0111111111111100
0100010001000100
0100010001000100
0100010001000100
0100010001000100
0100010001000100
0100100001000100
0100100000111100
0101000000000100
0110000000000100
0100000000000100
0111111111111100
0100000000000100
0000000000000000
第一种方法,按一维数组识别法:
识别图片中的信息,并读取其中的信息。首先是将图片放大,将其中的汉字变成像素组成的矩阵,白色为0,非白色为1,再变成一维数组如下:
″0000000000000000000000000000000001111111111111000100010001000100010001000100010001000100010001000100010001000100010001000100010001001000010001000100100000111100010100000000010001100000000001000100000000000100011111111111110001000000000001000000000000000000″
以{a、b、c}形式为例,首先将一维数组划分成{a、b、c}形式,其a、b、c分别表示该数组整体的和,该数组前半部分和,该数组后半部分和。该数组对应的{a、b、c}形式计算结果为{66、33、33},即将该数组变为:
″0000000000000000000000000000000001111111111111000100010001000100010001000100010001000100010001000100010001000100010001000100010001001000010001000100100000111100010100000000010001100000000001000100000000000100011111111111110001000000000001000000000000000000663333″。在搜索匹配的过程中,首先将被识别图像数组的a、b、c与字库中各数组的a、b、c对比,若{a、b、c}不相等,跳过对比下一个,若相等再详细对比0~1数组,相等即识别成功,不相等继续与库中的其他信息对比,直到找到相对应的信息,对比成功则读取即可。该搜索方法排除了许多详细的0~1数组匹配,大幅度提高了搜索识别效率。
第二种方法,按二维数组(矩阵)识别法:
以行与列各三段分割求和计算为例进行说明:首先将数值矩阵或序列的整行,行前半部分,行后半部分求和,添加在像素矩阵后形成新像素矩阵的列和行。故像素矩阵变为:
[0000000000000000000
0000000000000000000
01111111111111001376
0100010001000100422
0100010001000100422
0100010001000100422
0100010001000100422
0100010001000100422
0100100001000100422
0100100000111100624
0101000000000100321
0110000000000100321
0100000000000100211
01111111111111001376
0100000000000100211
0000000000000000000
013334722283331300
0611161116111600
0722311112222700]
在搜索匹配的过程中,首先将被识别图像数组的行{a、b、c},列{d、e、f}与字库中各数组的行{a、b、c},列{d、e、f}对比,若行{a、b、c},列{d、e、f}不相等,跳过对比下一个,若相等再详细对比0~1数组,相等即识别成功,不相等继续与库中的其他信息对比,直到找到相对应的信息,对比成功则读取即可。通过行{a、b、c},列{d、e、f}搜索方法排除了许多详细的0~1数组匹配,大幅度提高了搜索识别效率。
上面以三段分割为实例进行了说明。该专利方法可根据搜索识别对象的像素矩阵规模大小,采用行任意段分割求和及列任意段分割求和搜索匹配。若行任意段分割求和或列任意段分割求和不相等,跳过对比下一个,若相等再详细对比0~1数组。相等即识别成功,不相等继续与库中的其他像素矩阵信息对比,直到找到相对应的信息,对比成功则读取即可。通过行任意段分割求和及列任意段分割求和搜索方法排除了许多详细的0~1数组匹配,大幅度提高了搜索识别效率。
以上所述,仅为本发明的较佳实施例,并非对本发明任何形式上和实质上的限制,应当指出,对于本技术领域的普通技术人员,在不脱离本发明方法的前提下,还将可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。凡熟悉本专业的技术人员,在不脱离本发明的精神和范围的情况下,当可利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对上述实施例所作的任何等同变化的更动、修饰与演变,均仍属于本发明的技术方案的范围内。