首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于DSP的PDF417快速解码终端的设计与实现
来源:本站整理  作者:佚名  2010-04-01 13:50:25



    条码方向的提取决定了膨胀运算所使用的结构体。由于对图像直接进行膨胀运算很容易受噪声的影响,算法首先将图像区域分为水平、垂直、45°和135° 4种大致方向,而后提取条码的方向并根据条码不同的方向使用4种不同的膨胀结构体。这样有效防止了与条码接近的其他文字等背景由于使用各向同性的结构体进行膨胀运算而连接到条码中。方向提取先得到图像横向和纵向的梯度信息,而后以适当的阈值对得到的梯度图二值化并进行比较。认为含有较多边界信息的图指示的方向为条码的走向。如果两图边界的差值在一定范围内,则用同样的方法检测45°和135°两个方向。
    膨胀算法将条码连成一个紧密的连通区域,之后要进行连通域的标记以定位条码区域。算法包含3个步骤:
    (1)如果当前点A是前景点并且其前一点未被标记,则认为A是一个连通域的外轮廓点;跟踪这个外轮廓,并将所有外轮廓点都标记为与A属于相同的连通域。
    (2)如果当前点A下方的点是背景点且A的前一点已被标记,则认为A是连通域内轮廓点;跟踪这个内轮廓,并将所有内轮廓点都标记为与A属于相同的连通域。
    (3)如果前景点A的前一点已被标记且不属于情况1和2,则将A标记为与其前一点属于相同的连通域。
    边界的跟踪是通过搜索像素点8临域实现的,用顺时针排布的1~7分别代表8临域点,搜索方向更新公式为:
   
    系统采用的连通域标记法舍弃了传统的二次标记方式,而采用跟踪连通域外轮廓的方法,只需要对图像进行一次扫描,因此具有更快的速度。
3.3 条码的精确定位
    本文提出时间复杂度较低的边缘跟踪算法,精确定位了条码的4个顶点,为条码倾斜和几何形变的校正提供条件。图5给出了精确定位算法流程图。


    以搜索左上角顶点为例。系统用参考点数组记录搜索到的条码起始符或结束符的边缘走向,步进点数组沿起始结束符黑色边界方向逐点步进。若步进过程中某一时刻,步进点数组与参考点数组夹角超过45°,说明步进点数组已步进到条码边缘,则将步进点数组中心点位置确定为条码的左上顶点。用类似的方法搜索,可得到条码的其他3个顶点。
    条码的4个顶点确定以后,再经过旋转变换、错切变换和透视变换,将几何形变的不规则四边形条码校正为矩形条码。条码的旋转使终端的解码不再局限于水平和垂直的条码,实现了PDF417的全方位解码。
3.4 条码分层及码字读取
    PDF417是堆叠式条形码,需要确定条码的层次以进行逐行码字的读取。确定条码层次的步骤如下:
    (1)用Sobel边缘检测算子作用于图像,提取图像边界。
    (2)将得到的分层界限进行水平投影,记录投影点数目p(i)。
    (3)隔行差分。按照dif(i)=p(i)-p(i-2)计算第i行的投影差分值。若当前行投影差分值大于零,而其下一行差分值小于零,则认为该行为分层界限。
    (4)伪边界去除。将投影高度小于投影峰值1/4的边界去除,以消除由噪声产生的伪边界。
    得到条码的层边界后,系统采用层内投影并判断投影高度的方法来读取每层条码的条空信息。实践证明该方法具有较高的正确率。
    用条空的宽度除以单位模块的宽度得到条码的条空宽度序列,如:81111113….31111334….711311121。单位模块宽度求解方法为:
    
其中,Wm为单位模块宽度,Wl为层宽,n为一层条空总数。
    最终译码采用查表的方式将条空序列转换为码字序列。码字序列经过检错与纠错后,按照3种压缩模式编码的反方向进行译码,最终得到PDF417条码的原始数据。
4 实验结果
    对采集到的28 000幅、分辨率为320×480的图像进行测试。测试结果表明,本终端对PDF417条码的识别率可达99.76%,识别码解码正确率为100%,解码速度达10次/s以上,具有国内领先的技术水平。

上一页  [1] [2] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:275,144.50000 毫秒