一种批量真知码识别方法
技术领域
本发明涉及二维码技术,具体说是一种批量真知码的识别方法。
背景技术
二维码技术已经大量应用在多个行业中,现有的二维码多为开源二维码,容易被破解仿制,无法保证码的唯一性。申请人经过多年研发,自主开发出真知码技术,并且已于2011年向国家知识产权局提出了专利申请。真知码是结合编码信息和特定的定位图形“Z”按一定规律排列的平面图形,其中“Z”图形的宽和高的像素点比例为3:5,占整个真知码图形的4%左右,与市场上现有的大多数二维码相比,真知码具有以下特点:1)具有独特识读标志,实现快速识读;2)数据容量更大;3)可对字母,数字,中文等字符进行任意组合编码;4)具有抗损毁能力;5)难以被复制。该技术现在大量应用于产品的防伪溯源、作为电子回执或凭据以及证照或发票防伪识别。
目前真知码在应用过程中经常出现需要大批量识别的情况,但是目前现在市面上大多数检测设备都只针对已开源的二维码进行识别,而真知码属自主研发,编码方式和定位方式均与现有的二维码大不相同,故现有的二维码识别设备不能识别真知码,更无法实现大批量真知码识别。
发明内容
本发明的任务就是针对上述技术问题,提供一种可以对批量真知码进行识别的方法。
技术手段:本发明公开了一种批量真知码识别方法,包括下列时序步骤:
步骤1:获取批量印有等大小的真知码的图像,将图像进行二值化处理;
步骤2:识别并定位“Z”字形定位标识;
步骤3:根据“Z”字形定位标识在真知码中的比例和位置,将图像中所包含的真知码分割出;
步骤4:对分割出的真知码进行解码验证;
在步骤2中,首先利用图像显示设备显示二值化后的图像,并且根据图像中真知码的大小手动设置“Z”字形定位标识识别窗口的大小,其次利用识别窗口对图像逐行或逐列扫描识别,识别时对识别窗口内的图像进行如下时序步骤的检测:
(1)、检测识别窗口以外的左边是否为白色,若不是则判定不是“Z”字形定位标识;
(2)、检测窗口内的黑、白像素点比例是否满足要求,若不满足则判定不是“Z”字形定位标识;
(3)、检测连续的黑色像素点是否满足构成“Z”字形的条件,检测方式为识别任意黑色像素点的相邻的上、下、左、右四个像素点是否均为黑色像素点,这类像素点占窗口内总像素点的25%到58%之间,若不满足则判定不是“Z”字形定位标识;
(4)、检测是否为中心对称图像,若不是则判定不是“Z”字形定位标识;
(5)、检测图像的中间行的黑色像素点所占比例是否满足要求,若不满足则判定不是“Z”字形定位标识;
(6)、检测图像的中间列的黑白像素点比例是否满足要求,若不满足则判定不是“Z”字形定位标识;
(7)、检测图像中心点周围4/5的区域或“Z”字上下两条横线间的区域中黑、白像素点的比例是否满足要求,若不满足则判定不是“Z”字形定位标识;
(8)、检测图像的中间行和中间列的黑、白像素点跳变次数是否满足要求,若不满足则判定不是“Z”字形定位标识;
当上述条件(1)至(8)全部满足时,则认为识别窗口内的图像为“Z”字形定位标识。
在步骤1中将图像进行二值化处理的过程包括:
步骤2a:将待检图像转化为灰度图像;
步骤2b:设定阈值,将灰度值小于该阈值的点的灰度值设置为0,将灰度值大于该阈值的点的灰度值设为255,并在显示设备上显示二值化图像;
步骤2c:观察二值化图像,并实时调节阈值至二值化图像内二维码图像清晰、噪声点最少。
在步骤4中,若对分割出的真知码解码失败,则将图像按照设定角度旋转,然后返回步骤2,并继续对真知码进行识别,旋转角度为12度。
作为改进,在步骤2中,若当前检测窗口内的图像被判定为不是“Z”字形定位标识时,图像将按照设定角度旋转,然后重新由检测窗口截取图像并检测是否为“Z”字形定位标识;旋转角度为12度。
步骤2中:第(2)步需满足窗口内黑色像素点占总像素点的比例在25%到58%之间,第(5)步需满足检测窗口内的中间行的黑色像素点占总像素点的比例为1%到65%之间,第(6)步需满足检测窗口内的中间列的黑色像素点占总像素点的比例为3%到65%之间。
有益效果:本发明公开的方法可实现对真知码的批量识别,而且只要是等大小的真知码,无论方向如何,均可通过本方法识别,方便简单,大大减轻了批量录入码字工作人员的工作量,工作效率高。
附图说明
图1为真知码的示意图;
图2为本发明的方法流程图;
图3为“Z”字形定位标识的识别方法流程图。
具体实施方式
如图2和图3所示,本发明公开了一种批量真知码识别方法,包括下列时序步骤:
步骤1:获取批量印有等大小的真知码的图像,将图像进行二值化处理,具体过程包括:
a、将待检图像转化为灰度图像;b、设定阈值,将灰度值小于该阈值的点的灰度值设置为0,将灰度值大于该阈值的点的灰度值设为255,并在显示设备上显示二值化图像;c、观察二值化图像,并实时调节阈值至二值化图像内二维码图像清晰、噪声点最少。
步骤2:识别并定位“Z”字形定位标识。该步骤中,首先利用图像显示设备显示二值化后的图像,并且根据图像中真知码的大小手动设置“Z”字形定位标识识别窗口的大小,其次利用识别窗口对图像逐行或逐列扫描识别,识别时对识别窗口内的图像进行如下时序步骤的检测:
(1)、检测识别窗口以外的左边是否为白色,因为二值化后的图像中,真知码的轮廓为黑色,其周围为白色如图1所示。只有左边有白色像素点的图像区域才认为有可能存在Z字,否则直接认定小区域内不存在“Z”字形定位标识;
(2)、检测窗口内的黑、白像素点比例是否满足要求,可以仅统计黑色像素点占整个小区域的比例,当该比例为25%到58%时,会继续进行进一步判断,若不满足则判定不是“Z”字形定位标识;
(3)、检测连续的黑色像素点是否满足构成“Z”字形的条件,因为Z字是由连续的黑色像素点构成的字符,连续黑色像素点是由每个像素点的上下左右像素点来确定,只有上下左右都为黑色像素点的点才被认为具有黑色像素点连续性,此类黑色像素点占总像素点的比例为15%到58%之间;若不满足该比例则判定不是“Z”字形定位标识;
(4)、检测是否为中心对称图像,Z字是一个成中心对称的字符,理论上,从中间对称分割为两部分的话,其左边的黑色像素点和右边的黑色像素点,或者上半部分的黑色像素点和下半部分的黑色像素点是一样多的;分为四部分时,左上角和右下角、右上角和左下角的黑色像素点是一样多的,若不是则判定不是“Z”字形定位标识;
(5)、检测图像的中间行(比如5行像素点,中间行是指第3行)的黑白像素点比例是否满足要求,中间行有一个明显的特征是黑色像素点较少,白色像素点较多。实际操作时,可以统计中间行的黑色像素点占整行的比例,该比例为1%到65%之间,若不满足则判定不是“Z”字形定位标识;
(6)、检测图像的中间列的黑白像素点比例是否满足要求,中间列的特征是黑白像素点比例差不多,两者比例介于3%到65%之间,若不满足则判定不是“Z”字形定位标识;
(7)、检测图像中心点周围4/5的区域或“Z”字上下两条横线间的区域中黑、白像素点的比例是否满足要求,实际操作中,通常对中心点周围的4/5区域进行检测,如果其黑色像素点在整个中间区域的比例落在5%~40%之间都认为是合适的,若不满足则判定不是“Z”字形定位标识;
(8)、检测图像的中间行和中间列的黑、白像素点跳变次数是否满足要求,实际操作时,通常对白色跳到黑色的次数进行统计,很明显理论上,正立Z字中间行跳变次数为1次,中间列的跳变次数为3次,考虑到噪声点的干扰,为了提高算法鲁棒性,可以加上适量的误差量,若不满足跳变次数则判定不是“Z”字形定位标识;
当上述条件(1)至(8)全部满足判定条件时,则认为识别窗口内的图像为“Z”字形定位标识。作为改进,若当前检测窗口内的图像被判定为不是“Z”字形定位标识时,图像将以12度的角度旋转,然后重新由检测窗口截取图像并检测是否为“Z”字形定位标识,当旋转角度累计大于或等于360度并且期间内均没有检测到“Z”字形定位标识时,则认为该处没有“Z”字形定位标识。
步骤3:根据“Z”字形定位标识在真知码中的比例和位置,将图像中所包含的真知码分割出,如图1所示,真知码是结合了编码信息和特定图形“Z”按一定规律排列的平面图形,其中“Z”字形在真知码图形的左下角,具体大小占整个图形的4%左右。
步骤4:对分割出的真知码进行解码验证,若对分割出的真知码解码失败,则将图像按照12度的角度旋转,然后返回步骤2,并继续对真知码进行识别。
本申请的优点是可以对真知码进行批量的识别,而且对于真知码只要求各码图的大小一样,不要求方向一致,使用方便简单,可大大减轻真知码录入检测等工作的工作量,提高工作效率。