一种基于亚像素边缘检测的四一七条码识别方法

文档序号:6439806阅读:230来源:国知局

专利名称::一种基于亚像素边缘检测的四一七条码识别方法
技术领域
:本发明涉及一种条码自动识别方法,特别是高效的基于亚像素边缘检测的四一七条码识别方法,它能够快速、准确、高效地识别四一七条码,特别是在四一七条码图像分辨率低的情况下,该方法的识别效果十分显著。当在四一七条码图像模糊或打印质量差的情况下,该方法对提高四一七条码的识别率也有一定的效果。
背景技术
:自动化数据采集技术是信息采集和处理的关键技术,条码识别技术在自动化数据采集中占有重要地位。二维条码是在传统的一维条码基础上发展起来的。传统的一维条码由于受信息容量的限制,必须依赖数据库的支持;二维条码的信息密度高,信息容量大,可以不依赖于数据库,具有可移动性等诸多优点。四一七条码是二维条码家族中的一员,被称为便携式数据文件(PortableDataFile,也称“PDF417条码”),它是一种多层、可变长的二维条码,具有信息容量高、可编码范围广,保密、防伪性好,译码可靠性高,错误纠正能力强、制作成本低等特点。可以广泛地应用在国防、公共安全、交通运输、医疗保健、工业、商业、金融、海关及政府管理等领域。特别是随着手机等嵌入式智能终端设备的大量普及,四一七条码将在信息采集、金融票据、社会人员管理、现代物流和产业链管理等方面有着极大的应用前景。通过手机或相机摄像头拍摄包含四一七条码的图像,利用数字图像处理技术进行识别,是国内外对四一七条码的主要研究方向。由于获取四一七条码图像过程中会出现条码倾斜,条码图像分辨率低,模糊、打印质量差等情况。如何对图像中的四一七条码区域进行定位,如何计算四一七条码的功能信息参数(四一七条码的行数、数据区的列数和纠错等级)及如何准确提取四一七条码的符号字符,是四一七条码图像识别中的关键步骤。其中,能否准确提取符号字符,是四一七条码正确识别的关键,要想得到准确的符号字符,必须有理想的边缘来完成对四一七条码符号字符的分割。因此如何准确提取符号字符也是一个边缘检测的问题。对于这些关键步骤,传统的处理方法是首先,将四一七条码旋转至水平。其次,对旋转水平后的四一七条码图像进行边缘检测和利用投影算法,来计算功能信息参数。最后,对四一七条码的每一行在垂直方向投影,根据投影后的峰值之间的距离提取符号字符或者根据求取的四一七条码最小模块的宽度来提取符号字符。传统处理方法的缺点是1、将四一七条码旋转至水平方向。若采用基于直线拟合的方法,在有噪声干扰的情况下得到的直线不一定是四一七条码的边界则在此基础上的旋转必定会有较大误差。若采用基于Hough变换的方法,则花费时间较多;2、利用边缘检测和投影的思想计算功能信息参数,2.1一方面边缘检测对噪声敏感,抗噪声能力差。如若采用滤波,则滤波操作优化花费一定的时间。2.2基于水平和垂直方向的投影计算比较花费时间,另一方面在得到的峰值后利用控制误差限的方法计算功能信息参数,误差大;3、符号字符对于四一七条码能否正确识别至关重要,传统的方法是利用传统边缘检测算法进行边缘检测后在垂直方向上的投影或利用最小模块宽度提取符号字符,由于不能很好的分割四一七条码符号字符对应的模块,特别是在四一七条码图像分辨率低、存在污损,打印质量差的情况下,提取符号字符的成功率很低,造成四一七条码不能正确被识别。总之,传统的四一七条码处理方法处理速度慢、耗时、误差大、识别率低,效率也低,难以达到实时性及在各行各业的广泛应用和普及。
发明内容本发明的目的是提供一种高效的基于亚像素边缘检测的四一七条码识别方法,以达到实时性、识别率高。特别是在四一七条码图像分辨率低的情况下,提高对四一七条码的识别率效果;在四一七条码图像模糊、打印质量差的情况下,提高对四一七条码的识别率。本发明的目的是这样实现的一种基于亚像素边缘检测的四一七条码识别方法,包括以下步骤1.1)对采集的四一七条码图像进行灰度化处理,采用类似折半查找的思想,分别在水平方向上从左到右和从右到左进行光栅扫描,扫描过程中,若发现相邻像素的像素值发生明显变化,则称为一次跳变;利用跳变的次数,结合起始符和终止符的纹理信息,确定最后两次符合起始符纹理信息和最后两次符合终止符纹理信息时的开始和结束共八个点A、B、C、D、E、F、G、H;1.2)利用八个点中的从左向右扫描得到的起始符最左边的两个点A、C所确定的直线与八个点中最下方的两个点D、G所确定的直线的交点,确定四一七条码最左下角的点P;利用八个点中的从右向左扫描得到的终止符最右边两点E、G所确定的直线与八个点中最上方的两个点A、F所确定的直线的交点,确定四一七条码最右上角的点Q,自此完成四一七条码的定位;1.3)根据八个点中的点B、D所在的直线与点A、F所在直线的交点M确定四一七条码第一行左提示符的起始点,利用点F、H所在的直线与点D、G所在的直线的交点N确定最后一行右提示符的终止点;分别由点M开始沿着点A、F所在的直线向右扫描和由点D开始沿着点D、G所在的直线向右扫描,根据左行提示符的纹理信息和跳变的次数,确定第一行和最后一行的左行提示符对应的两个符号字符,进而查找其对应的码字;分别由点F开始沿着点A、F所在的直线向左扫描和由点N开始沿着点D、G所在直线向左扫描,根据右行提示符的纹理信息和跳变的次数,确定第一行和最后一行的右行提示符对应的两个符号字符,进而查找其对应的两个码字;根据得到的第一行和最后一行的左、右行提示符所对应的四个码字,按照四一七条码的编码规则确定四一七条码的如下功能信息参数四一七条码的行数、列数和纠错等级;1.4)对在步骤1.1)和步骤1.3)确定的第一行左提示符开始点M和最后一行左提示符开始点D所确定的线段MD进行按四一七条码的行数等分;其中,等分点离线段MD的端点M、D的距离分别为其他各相邻等分点之间距离的二分之一;对第一行右提示符的结束点F和最后一行右提示符的结束点N确定的线段FN进行按四一七条码的行数等分,等分点离线段FN的端点F、N的距离分别为其它各相邻等分点之间距离的二分之一;然后,依次完成两线段之间所对应的等分点之间的线段按行进行光栅扫描得到其对应的像素值,自此完成了四一七条码每一行的采样;1.5)基于亚像素边缘检测的思想,将光栅扫描所得到的每一行线段上的像素值在一维方向放大一定的倍数并用一定的插值方法完成插值处理;对插值后的像素值利用局部二值化的思想,对其完成二值化处理;从而完成四一七条码每一行上的符号字符的分割;1.6)将分割后的四一七条码的每一行符号字符按照符号字符的特征将其对应的连续相同像素的个数规范化为标准的符号字符;上述符号字符的特征是以条开始,以空结束,条空相间排列,共四个条和四个空;1.7)由步骤1.6)得到的符号字符查找其对应的码字,根据纠错等级进行译码和纠错。上述步骤1.1)中采用类似折半查找的思想,利用跳变的次数,结合起始符和终止符的纹理信息,确定最后两次符合起始符纹理信息和最后两次符合终止符纹理信息时的开始和结束共八个点A、B、C、D、E、F、G、H步骤如下a)在包含四一七条码图像的整幅图像高的二分之一处,在水平方向上按行从左到右扫描,根据像素值的跳变次数和四一七条码起始符的纹理信息,获得一段像素值;b)若所得的像素值规范化为符号字符后符合起始符的符号字符特征,则记录该段像素值的起始点和终止点;c)如果所得的像素值规范化为符号字符后不符合起始符的符号字符特征,则继续在包括四一七条码整幅图像的上半部分和下半部分分别重复步骤a)、b)、c),每次均在按上一步查找的图像高度范围内的二分之一处继续查找,直到找到最后两次符合四一七条码起始符纹理信息的两条线段的四个端点A、B、C、D;d)在包含四一七条码图像的整幅图像高的二分之一处,在水平方向上按行从右到左扫描,根据像素值的跳变次数和四一七条码终止符的纹理信息,获得一段像素值;e)若所得的像素值规范化为符号字符后符合终止符的符号字符特征,则记录该段像素值的起始点和终止点;f)如果所得的像素值规范化为符号字符后不符合终止符的符号字符特征,则继续在包括四一七条码整幅图像的上半部分和下半部分分别重复步骤d)、e)、f),每次均在按上一步查找的图像高度范围内的二分之一处继续查找,直到找到最后两次符合四一七条码终止符纹理信息的两条线段的四个端点E、F、G、H;如果在水平方向上,按照上述方法,进行了若干次数后没有出现一次是符合起始符纹理信息或终止符纹理信息的情况,则在垂直方向进行和在水平方向类似的查找。上述步骤1.2)中确定四一七条码最左下角的点P和最右上角的点Q采用如下步骤由于存在可能的误差,利用如1.2)步骤中所描述的点A、C所在的直线和点D、G所在的直线的交点,然后在该交点附近沿着直线AC和直线DG方向搜索,结合四一七条码起始符,判断一个较准确的点作为点P;利用如1.2)步骤中所描述的点E、G所在的直线和点A、F所在的直线的交点,然后在该交点附近沿着直线EG和直线AF搜索,结合四一七条码终止符,判断一个较准确的点作为点Q。上述步骤1.3)中所述的利用第一行和最后一行的左行提示符、右行提示符信息计算四一七条码功能信息参数失效或截断四一七条码的情况下,则采用从点M沿线段MD向下,朝平行于直线AF的方向根据四一七条码的左提示符的纹理信息和跳变的次数,确定任意三个连续的左行提示符所对应的码字,或者从点D沿线段MD向上,朝平行于直线DG的方向根据四一七条码的左行提示符的纹理信息和跳变次数,确定任意三个连续的左行提示符所对应的码字;根据四一七条码的编码规则,计算出四一七条码的功能信息参数。上述步骤1.4)中,在对线段MD和线段FN进行按四一七条码的行数等分过程中,由于考虑到求取点M、D、F、N这四个点过程中可能存在误差,则将点M和点D分别沿直线AF和直线DG向四一七条码的内部移动1或2个像素,同样将点F、N沿直线AF和直线DG向四一七条码的内部移动1或2个像素。上述对于截断四一七条码的情况,则确定六个点A、B、C、D、Fl、Gl;其中点A、B、C、D四个点的确定方法与上述点A、B、C、D的确定方法相同;点F1、G1的确定方法为从上到下依次从左向右扫描,确定第一次和最后一次符合截断四一七条码结尾纹理信息和跳变次数的两个点为点Fl、点Gl。上述对于截断四一七条码的情况,四一七条码最左下角点Pl的确定方法同上述点P的确定方法。上述对于截断四一七条码的情况,将线段FlGl按四一七条码的行数等分过程中,首先将点Fl沿直线AFl向四一七条码内部移动若干个像素到与其相邻的四一七条码空的结束处,将点Gl沿直线DGl向四一七条码内部移动若干个像素到与其相邻的四一七条码空的结束处,然后将其按四一七条码的行数等分,等分点离线段FlGl的端点F1、G1的距离分别为其他各相邻等分点之间距离的二分之一。与传统方法的对比及总结,本发明方法主要具有以下优点1、能快速定位四一七条码。传统的处理方法是基于Hough变换还是采用直线拟合的方法,均存在花费时间大、抗干扰、抗污损能力弱的缺点。本发明方法,充分利用四一七条码的纹理信息采用折半查找的思想,能快速完成四一七条码的定位,而且在定位时,只利用起始符和终止符的纹理信息,而不关心四一七条码的其他区域。因此本发明方法,在四一七条码定位方面具有处理速度快,抗干扰能力强,实时性好的优点。2、能快速、准确计算四一七条码的功能信息参数。传统的处理方法是基于边缘检测和投影算法的思想,一方面,传统的边缘检测算法对噪声敏感,存在伪边缘的情况。另一方面,利用投影算法和控制误差限的方法,来计算功能能信息参数存在的误差较大。本发明方法,从分利用提示符的纹理信息,能快速计算出四一七条码的功能信息参数,同时可利用多个提示符对应的码字,完成对其验证。特别是在截断四一七条码和数据区污损严重的四一七条码的识别过程中,本发明方法有较好鲁棒性好。因此,本发明方法在求取四一七条码功能信息方面,具有速度快,鲁棒性好的优点。3、能很好的分割四一七条码的符号字符,条码识别率高。传统的处理方法是利用传统的边缘检测算法,然后利用投影算法的思想或者利用最小模块宽度去分割符号字符对于的模块。其缺点很明显由于条到空的变化中存在过渡,传统的边缘检测算法不能很好的分割四一七条码的符号字符,而用最小模块去分割符号字符误差大。传统的处理方法不能很好的分割四一七条码的符号字符,这是造成使用传统处理方法四一七条码识别率低的主要原因,特别是在四一七条码图片分辨率的情况下。本发明方法,采用基于亚像素边缘检测的思想对采样的一行进行处理,能很好的分割四一七条码的符号字符,特别是在四一七条码图片分辨率的情况下。因此,本发明方法,分割四一七条码符号字符的效果好,四一七条码的识别率高。4、本发明方法不仅适用于标准四一七条码和截断四一七条码,而且对于部分污损较严重的情况下也能正确识别。图1、图2、图3(图3在图2基础上的采样示意)为非截断四一七条码(具备起始符、左行提示符、数据区、右行提示符、终止符)的识别示意图。图4、图5、图6(图6在图5基础上的采样示意)为截断四一七条码的识别示意图。具体实施例方式本基于亚像素边缘检测的四一七条码识别方法,包括以下步骤1.1)对采集的四一七条码图像进行灰度化处理,采用类似折半查找的思想,分别在水平方向上从左到右和从右到左进行光栅扫描,扫描过程中,若发现相邻像素的像素值发生明显变化,则称为一次跳变。利用跳变的次数,结合起始符和终止符的纹理信息,确定最后两次符合起始符纹理信息和最后两次符合终止符纹理信息时的开始和结束共八个点A、B、C、D、E、F、G、H(见示意图1);1.2)利用八个点中的从左向右扫描得到的起始符最左边的两个点A、C所确定的直线与八个点中最下方的两个点D、G所确定的直线的交点,确定四一七条码最左下角的点P。利用八个点中的从右向左扫描得到的终止符最右边两点E、G所确定的直线与八个点中最上方的两个点A、F所确定的直线的交点,确定四一七条码最右上角的点Q,自此完成四一七条码的定位(见示意图2);1.3)根据八个点中的点B、D所在的直线与点A、F所在直线的交点确定四一七条码第一行左提示符的起始点M,利用点F、H所在的直线与点D、G所在的直线的交点确定最后一行右提示符的终止点N(见示意图2)。分别由点M开始沿着点A、F所在的直线向右扫描和由点D开始沿着点D、G所在的直线向右扫描,根据左行提示符的纹理信息和跳变的次数,确定第一行和最后一行的左行提示符对应的两个符号字符,进而查找其对应的码字;分别由点F开始沿着点A、F所在的直线向左扫描和由点N开始沿着点D、G所在直线向左扫描,根据右行提示符的纹理信息和跳变的次数,确定第一行和最后一行的右行提示符对应的两个符号字符,进而查找其对应的两个码字。根据得到的第一行和最后一行的左行提示符、右行提示符所对应的四个码字,按照四一七条码的编码规则确定四一七条码的功能信息参数(四一七条码的行数、列数和纠错等级);1.4)对在步骤1.1)和步骤1.3)确定的第一行左提示符开始点M和最后一行左提示符开始点D所确定的线段MD进行按四一七条码的行数等分。其中,等分点离线段MD的端点M、D的距离分别为其他各相邻等分点之间距离的二分之一。对第一行右提示符的结束点F和最后一行右提示符的结束点N确定的线段FN进行按四一七条码的行数等分,等分点离线段FN的端点F、N的距离分别为其他各相邻等分点之间距离的二分之一。然后,依次完成两线段之间所对应的等分点之间的线段按行进行光栅扫描得到其对应的像素值,自此完成了四一七条码每一行的采样(见示意图3、示意图6);1.5)基于亚像素边缘检测的思想,将光栅扫描所得到的每一行线段上的像素值在一维方向放大一定的倍数并用一定的插值方法完成插值处理。对插值后的像素值利用局部二值化的思想,对其完成二值化处理。此完成了四一七条码每一行上的符号字符的分割。1.6)将分割后的四一七条码的每一行符号字符按照符号字符的特征(以条开始,以空结束,条空相间排列,共四个条和四个空)将其对应的连续相同像素的个数规范化为标准的符号字符。1.7)由步骤1.6)得到的符号字符查找其对应的码字,根据纠错等级进行译码和纠T曰O步骤1.1)中采用类似折半查找的思想,利用跳变的次数,结合起始符和终止符的纹理信息,确定最后两次符合起始符纹理信息和最后两次符合终止符纹理信息时的开始和结束共八个点A、B、C、D、E、F、G、H步骤如下a)在包含四一七条码图像的整幅图像高的二分之一处,在水平方向上按行从左到右扫描,根据像素值的跳变次数和四一七条码起始符的纹理信息,获得一段像素值。b)若所得的像素值规范化为符号字符后符合起始符的符号字符特征,则记录该段像素值的起始点和终止点。c)如果所得的像素值规范化为符号字符后不符合起始符的符号字符特征,则继续在包括四一七条码整幅图像的上半部分和下半部分分别重复步骤a)、b)、c),每次均在按上一步查找的图像高度范围内的二分之一处继续查找,直到找到最后两次符合四一七条码起始符纹理信息的两条线段的四个端点A、B、C、D。d)在包含四一七条码图像的整幅图像高的二分之一处,在水平方向上按行从右到左扫描,根据像素值的跳变次数和四一七条码终止符的纹理信息,获得一段像素值。e)若所得的像素值规范化为符号字符后符合终止符的符号字符特征,则记录该段像素值的起始点和终止点。f)如果所得的像素值规范化为符号字符后不符合终止符的符号字符特征,则继续在包括四一七条码整幅图像的上半部分和下半部分分别重复步骤d)、e)、f),每次均在按上一步查找的图像高度范围内的二分之一处继续查找,直到找到最后两次符合四一七条码终止符纹理信息的两条线段的四个端点E、F、G、H。如果在水平方向上,按照上述方法,进行了若干次数后没有出现一次是符合起始符纹理信息或终止符纹理信息的情况,则在垂直方向进行和在水平方向类似的查找。对于截断四一七条码的情况,可以确定六个点A、B、C、D、F1、G1(示意图4)。其中点A、B、C、D四个点的确定步骤与示意图1中的点A、B、C、D的确定步骤相同。点Fl、Gl的确定方法为从上到下依次从左向右扫描,确定第一次和最后一次符合截断四一七条码结尾纹理信息和跳变次数的两个点Fl、Gl。步骤1.2)中确定四一七条码最左下角的点P和最右上角的点Q采用如下步骤由于存在可能的误差,利用如1.2)步骤中所描述的点A、C所在的直线和点D、G所在的直线的交点,然后在该交点附近沿着直线AC和直线DG搜索,结合四一七条码起始符,判断一个较准确的点作为点P。利用如1.2)步骤中所描述的点E、G所在的直线和点A、F所在的直线的交点,然后在该交点附近沿着直线EG和直线AF搜索,结合四一七条码终止符,判断一个较准确的点作为点Q。对于截断四一七条码的情况,四一七条码最左下角点Pl的确定方法同上述点P的确定方法(示意图5)。步骤1.3)中所述的利用第一行和最后一行的左、右行提示符信息计算四一七条码功能信息参数失效或截断四一七条码的情况下,可采用从点M沿线段MD向下,朝平行于直线AF的方向根据四一七条码的左提示符的纹理信息和跳变的次数,确定任意三个连续的左行提示符所对应的码字,或者从点D沿线段MD向上,朝平行于直线DG的方向根据四一七条码的左行提示符的纹理信息和跳变次数,确定任意三个连续的左行提示符所对应的码字(示意图2、示意图5)。根据四一七条码的编码规则,可计算出四一七条码的功能信息参数。步骤1.4)中,在对线段MD和线段FN进行按四一七条码的行数等分过程中,由于考虑到求取点M、D、F、N这四个点过程中可能存在误差,则将点M和点D分别沿直线AF和直线DG向四一七条码的内部移动1或2个像素,同样将点F、N沿直线AF和直线DG向四一七条码的内部移动1或2个像素。对于截断四一七条码的情况,将线段FlGl按四一七条码的行数等分过程中,首先将点Fl沿直线AFl向四一七条码内部移动若干个像素到与其相邻的四一七条码空的结束出处,将点Gl沿直线DGl向四一七条码内部移动若干个像素到与其相邻的四一七条码空的结束处,然后将其按四一七条码的行数等分,等分点离线段FlGl的端点F1、G1的距离分别为其他各相邻等分点之间距离的二分之一。权利要求1.一种基于亚像素边缘检测的四一七条码识别方法,其特征是包括以下步骤1.1)对采集的四一七条码图像进行灰度化处理,采用类似折半查找的思想,分别在水平方向上从左到右和从右到左进行光栅扫描,扫描过程中,若发现相邻像素的像素值发生明显变化,则称为一次跳变;利用跳变的次数,结合起始符和终止符的纹理信息,确定最后两次符合起始符纹理信息和最后两次符合终止符纹理信息时的开始和结束共八个点A、B、C、D、E、F、G、H;1.2)利用八个点中的从左向右扫描得到的起始符最左边的两个点A、C所确定的直线与八个点中最下方的两个点D、G所确定的直线的交点,确定四一七条码最左下角的点P;利用八个点中的从右向左扫描得到的终止符最右边两点E、G所确定的直线与八个点中最上方的两个点A、F所确定的直线的交点,确定四一七条码最右上角的点Q,自此完成四一七条码的定位;1.3)根据八个点中的点B、D所在的直线与点A、F所在直线的交点M确定四一七条码第一行左提示符的起始点,利用点F、H所在的直线与点D、G所在的直线的交点N确定最后一行右提示符的终止点;分别由点M开始沿着点A、F所在的直线向右扫描和由点D开始沿着点D、G所在的直线向右扫描,根据左行提示符的纹理信息和跳变的次数,确定第一行和最后一行的左行提示符对应的两个符号字符,进而查找其对应的码字;分别由点F开始沿着点A、F所在的直线向左扫描和由点N开始沿着点D、G所在直线向左扫描,根据右行提示符的纹理信息和跳变的次数,确定第一行和最后一行的右行提示符对应的两个符号字符,进而查找其对应的两个码字;根据得到的第一行和最后一行的左、右行提示符所对应的四个码字,按照四一七条码的编码规则确定四一七条码的如下功能信息参数四一七条码的行数、列数和纠错等级;1.4)对在步骤1.1)和步骤1.3)确定的第一行左提示符开始点M和最后一行左提示符开始点D所确定的线段MD进行按四一七条码的行数等分;其中,等分点离线段MD的端点M、D的距离分别为其他各相邻等分点之间距离的二分之一;对第一行右提示符的结束点F和最后一行右提示符的结束点N确定的线段FN进行按四一七条码的行数等分,等分点离线段FN的端点F、N的距离分别为其它各相邻等分点之间距离的二分之一;然后,依次完成两线段之间所对应的等分点之间的线段按行进行光栅扫描得到其对应的像素值,自此完成了四一七条码每一行的采样;1.5)基于亚像素边缘检测的思想,将光栅扫描所得到的每一行线段上的像素值在一维方向放大一定的倍数并用一定的插值方法完成插值处理;对插值后的像素值利用局部二值化的思想,对其完成二值化处理;从而完成四一七条码每一行上的符号字符的分割;1.6)将分割后的四一七条码的每一行符号字符按照符号字符的特征将其对应的连续相同像素的个数规范化为标准的符号字符;上述符号字符的特征是以条开始,以空结束,条空相间排列,共四个条和四个空;1.7)由步骤1.6)得到的符号字符查找其对应的码字,根据纠错等级进行译码和纠错。2.根据权利所要求1所述的一种基于亚像素边缘检测的四一七条码识别方法,其特征是所述步骤1.1)中采用类似折半查找的思想,利用跳变的次数,结合起始符和终止符的纹理信息,确定最后两次符合起始符纹理信息和最后两次符合终止符纹理信息时的开始和结束共八个点A、B、C、D、E、F、G、H步骤如下a)在包含四一七条码图像的整幅图像高的二分之一处,在水平方向上按行从左到右扫描,根据像素值的跳变次数和四一七条码起始符的纹理信息,获得一段像素值;b)若所得的像素值规范化为符号字符后符合起始符的符号字符特征,则记录该段像素值的起始点和终止点;c)如果所得的像素值规范化为符号字符后不符合起始符的符号字符特征,则继续在包括四一七条码整幅图像的上半部分和下半部分分别重复步骤a)、b)、c),每次均在按上一步查找的图像高度范围内的二分之一处继续查找,直到找到最后两次符合四一七条码起始符纹理信息的两条线段的四个端点A、B、C、D;d)在包含四一七条码图像的整幅图像高的二分之一处,在水平方向上按行从右到左扫描,根据像素值的跳变次数和四一七条码终止符的纹理信息,获得一段像素值;e)若所得的像素值规范化为符号字符后符合终止符的符号字符特征,则记录该段像素值的起始点和终止点;f)如果所得的像素值规范化为符号字符后不符合终止符的符号字符特征,则继续在包括四一七条码整幅图像的上半部分和下半部分分别重复步骤d)、e)、f),每次均在按上一步查找的图像高度范围内的二分之一处继续查找,直到找到最后两次符合四一七条码终止符纹理信息的两条线段的四个端点E、F、G、H;如果在水平方向上,按照上述方法,进行了若干次数后没有出现一次是符合起始符纹理信息或终止符纹理信息的情况,则在垂直方向进行和在水平方向类似的查找。3.根据权利所要求1所述的一种基于亚像素边缘检测的四一七条码识别方法,其特征是所述步骤1.2)中确定四一七条码最左下角的点P和最右上角的点Q采用如下步骤由于存在可能的误差,利用如1.2)步骤中所描述的点A、C所在的直线和点D、G所在的直线的交点,然后在该交点附近沿着直线AC和直线DG方向搜索,结合四一七条码起始符,判断一个较准确的点作为点P;利用如1.2)步骤中所描述的点E、G所在的直线和点A、F所在的直线的交点,然后在该交点附近沿着直线EG和直线AF搜索,结合四一七条码终止符,判断一个较准确的点作为点Q。4.根据权利所要求1所述的一种基于亚像素边缘检测的四一七条码识别方法,其特征是所述步骤1.3)中所述的利用第一行和最后一行的左行提示符、右行提示符信息计算四一七条码功能信息参数失效或截断四一七条码的情况下,则采用从点M沿线段MD向下,朝平行于直线AF的方向根据四一七条码的左提示符的纹理信息和跳变的次数,确定任意三个连续的左行提示符所对应的码字,或者从点D沿线段MD向上,朝平行于直线DG的方向根据四一七条码的左行提示符的纹理信息和跳变次数,确定任意三个连续的左行提示符所对应的码字;根据四一七条码的编码规则,计算出四一七条码的功能信息参数。5.根据权利所要求1所述的一种基于亚像素边缘检测的四一七条码识别方法,其特征是所述步骤1.4)中,在对线段MD和线段FN进行按四一七条码的行数等分过程中,由于考虑到求取点M、D、F、N这四个点过程中可能存在误差,则将点M和点D分别沿直线AF和直线DG向四一七条码的内部移动1或2个像素,同样将点F、N沿直线AF和直线DG向四一七条码的内部移动1或2个像素。6.根据权利所要求2所述的一种基于亚像素边缘检测的四一七条码识别方法,其特征是所述对于截断四一七条码的情况,则确定六个点A、B、C、D、FUGl;其中点A、B、C、D四个点的确定方法与上述点A、B、C、D的确定方法相同;点F1、G1的确定方法为从上到下依次从左向右扫描,确定第一次和最后一次符合截断四一七条码结尾纹理信息和跳变次数的两个点为点Fl、点Gl。7.根据权利所要求3所述的一种基于亚像素边缘检测的四一七条码识别方法,其特征是所述对于截断四一七条码的情况,四一七条码最左下角点Pi的确定方法同上述点P的确定方法。8.根据权利所要求5所述的一种基于亚像素边缘检测的四一七条码识别方法,其特征是所述对于截断四一七条码的情况,将线段FlGl按四一七条码的行数等分过程中,首先将点Fl沿直线AFl向四一七条码内部移动若干个像素到与其相邻的四一七条码空的结束处,将点Gl沿直线DGl向四一七条码内部移动若干个像素到与其相邻的四一七条码空的结束处,然后将其按四一七条码的行数等分,等分点离线段FlGl的端点Fl、Gl的距离分别为其他各相邻等分点之间距离的二分之一。全文摘要本发明公开了一种高效的基于亚像素边缘检测的四一七条码识别方法。针对传统四一条码识别方法处理速度慢、抗干扰性能差、误差大等缺点,本发明引入基于亚像素边缘检测的识别方法。本发明能够快速、准确、高效地识别四一七条码,特别是在四一七条码图像分辨率低的情况下,该方法的识别效果十分显著。当四一七条码图像模糊或打印质量差的情况下,该方法对提高四一七条码的识别率也有一定的效果。本方法也适用于截断四一七条码的情况。本发明四一七条码识别方法具有很好的实时性,抗污损能力强,识别效率高,可广泛应用于智能手机等终端嵌入式设备中。文档编号G06K7/10GK102521559SQ201110392408公开日2012年6月27日申请日期2011年12月1日优先权日2011年12月1日发明者唐鹏,王俊峰,袁军,陈懿,高琳申请人:四川大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1