- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京交通大学DSP图像处理课程设计报告
DSP数字图像处理课程设计报告基于 DSP图像处理的EAN13码识别学院:电子信息工程学院班级:电子1202姓名:汤世忠姓名:王磊指导教师:高海林目录1实验目的22设计背景23设计原理24设计方案35流程框图46算法介绍46.1匹配算法46.2识别部分56.3显示部分67结果分析78遇到的问题99总结910参考文献1011感谢10实验目的利用C64x系列DSP处理器及图像采集设备等硬件,用C语言编程实现对EAN13条形码的识别及其输出显示。2设计背景条码技术在我国起步较晚,但发展非常迅速已广泛用于工业、商业、图书出版等领域。传统的条码识别方法是用光电识读器,通过光在深色和浅色上的反射效果区别条纹的亮暗,然后经过将反射光转换为电子脉冲后使用解码器将其转换成二进制码。然而这种方法会由于印刷的质量受到干扰,况且设备价格昂贵也是其中一个问题。采用数字图像处理来识别处理是一种简单的方法,而且能克服传统方法的不足,具有较强的实用性。3设计原理EAN-13是由欧洲的International Article Numbering Association(EAN)在UPC-A标准的基础上建立的。是一种数字国际通用符号体系,由数字和条码两部分组成。数字部分由13位十进制数组成的数码,从左到右为起始符、左侧数据符、中间分隔符、右侧数据符、终止符,其中右侧数据符的最后一位为检验符。如图1所示。图1条码部分用数字“1”来表示条码的一个“暗”或“条”部分,而用“0”来表示条码的一个“亮”或“空间”部分。这样,数值1101就表示一个两个宽度的条(11),跟着一个宽度的空间(0),跟着一个宽度的条(1)。这个在条码中可能被打印如图2所示:图2对于数据符中字符的编码也有区别,我们称中间分隔符左边的为L符,右边的为R符。L符的编码存在奇偶集,经常使用“字符集A”(奇)和“字符集B”(偶)来表示,R符使用“字符集C”表示。编码规则如表1所示:表1一个EAN-13字符使用7个元素来描述,包含2个条和2个空间。任何条或空间的长度都不会超过4个元素。唯一的例外情况就是左警戒条和右警戒条(都是3个元素)以及中间警戒条(5个元素长)。检验符处在条码数字的最后一位,用来检车前面的数值是否正确,可由前面数值计算得来,计算校验位的步骤如下:将最右边一个数位作为“奇数”位,从右向左为每个字符指定奇数/偶数位。对所有奇数位上的数值求和,将结果乘以3。对所有偶数位上的数值求和。对第1步和第2步计算的结果求和。校验位的数字加上用第3步计算的总和数应该能够被10整除。如果第4步计算的总和数能够被10整除,校验位就是“0”(不是10)4设计方案首先在屏幕中央上划定一个200*12的区域,在识别时将条形码调整至该区域。对该区域进行二值化处理,得到非黑即白的条码图像,便于后续的算法处理。识别算法方面,利用EAN13编码的特殊性,可有如下的思路:在EAN13编码中,对于同一子集中的码,连续的“0”或“1”的个数的排列就能将该子集中的10个数字分辨出来。如A子集中的“0”,它的编码为0001101,我们换一种方式编码,把它看作是3,2,1,1. 这种编码方式有助于简化我们的算法,因为可以不用考虑具体是“0”还是“1”,而且使得A子集和C子集的编码保持一致。这种方式编码的码字均由4个元素组成。对条码取了高度为12的像素。由于我们要做竖直方向上的累加,这样既能降低条码倾斜带来的影响,又能减小误差。由图像读入的条码,其最小单位的宽度是不确定的。为此,可以将每4次变化为一组的数据与模板依次相除,若得到的4个数字近似相等,则说明匹配成功,也就识别出了该数字。用计算并比较方差的方法来判断是否“近似相等”。5流程框图6算法介绍6.1匹配算法目的:将对所有模板分别相除进行匹配,返回计算所得方差最小的模板的标号,即为该模块代表的数字。int LEFT_TABLE_INT[20][4] = { {3,2,1,1},{2,2,2,1},{2,1,2,2},{1,4,1,1},{1,1,3,2}, //A子集、C子集 0-9 {1,2,3,1},{1,1,1,4},{1,3,1,2},{1,2,1,3},{3,1,1,2}, {1,1,2,3},{1,2,2,2},{2,2,1,2},{1,1,4,1},{2,3,1,1}, //B子集 0-9 {1,3,2,1},{4,1,1,1},{3,1,2,1},{3,1,2,1},{2,1,1,3} };intgetSTDValue(intmvalues[],inttabLen)/*tabLen = 10或20*/{intrvalue = 0;intsvalues[4];intxvalue[4];int DX = 0;int
文档评论(0)