AI嵌入式K210项目(27)-条形码识别


前言

本章介绍基于机器视觉实现条形码识别,主要包含两个过程,首先检测图像中是否有条形码,如果有则框出并打印条形码信息;

一、什么是条形码?

条形码是一种图形标识符,由一系列宽度不等的黑条和空白组成,按照一定的编码规则排列。它可以用来表达一组信息,并且通常被印刷在商品、图书、邮件等各种物品上。通过使用条形码识别设备,可以快速、准确地读取条形码中的信息,并将其传输到计算机系统进行处理。

条形码的发明可以追溯到20世纪20年代,最初是为了对邮政单据实现自动分检而发明的。随着计算机技术的不断发展,条形码的应用范围越来越广泛,逐渐扩展到商品流通、图书管理、邮政管理、银行系统等领域。

条形码的编码规则是根据一定的规律和标准制定的,包括条形码的长度、宽度、编码方式等。常见的条形码类型是一维条形码,它只包含数字和字符的信息,而二维条形码则可以包含更多的信息,如文字、图像等。

使用条形码具有很多优势,如识别速度快、准确性高、成本低廉等。同时,条形码还可以被重复使用,方便对物品进行跟踪和管理。随着物联网技术的不断发展,条形码的应用前景更加广阔,它可以被用来实现物品的自动化识别和数据采集,提高生产效率和管理水平。

二、实验准备

首先我们先生成一个带有信息的条形码图片,用于验证我们的功能;可以到https://www.idcd.com/tool/barcode/encode这个网站上进行免费生成;这里要注意的是输入的数字串不要太长
在这里插入图片描述

三、实验过程

模块的出厂固件已经集成AI视觉算法模块,如果下载过其他固件,请烧录回出厂固件再进行实验。

导入相关库,并初始化摄像头和LCD显示屏,这里把摄像头的颜色设置成灰度

import sensor, image, time, math, lcd
​
lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565) #GRAYSCALE
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 100)
sensor.set_auto_gain(False)
sensor.set_auto_whitebal(False)
clock = time.clock()

根据不同的编码方式,将条形码的类型名称转化为字符串;

def barcode_name(code):
    if(code.type() == ima
英文版的工具名是“Barcode Toolbox”,然后点击“Hide Barcode”。如下图: 之后在工作区会出现如下图的“Barcode Toolbox”工具面板: 通过条形码测量工具可对已创建的条形码进行校验,其校验功能也可以校验由其它条形码工具所生成的条形码。在工具箱上选择条形码测量工具,横向划过已生成的条形码,在条形码调板的代码字段内即可产生该条形码的构成数值。测量前一定要确保条码是群组后的,测量时测量工具一定要把条码拉完。 在条码工具面板右方还有一个下拉菜单: 下拉菜单内容如下: 下拉菜单的具体含意是: -添加结束区域指示符 -添加上下端鉴别条 -添加左右端鉴别条 -使用OCRB作为缺省字体未完待续 -判读字符居中对齐 -判读字符的高度缩放百分比 PS:一般情况下这些选项保持默认便可,无需更改。 条码制作过程:以 EAN 13 为例 在code栏里输入正确的13位条码号(最后的校验位可不必输入,会自动生成,若你发现自动生成的未位与资料来符,请及时核对你的资料的正确性),输入时你可以不用分隔符隔开,输入完后会自动隔开的。 在code witdth里输入合适的条宽缩小量。条宽缩小量因不同的印刷而有所不同。胶印一般为0.02。凹印一般为0.03。柔印可以为0.05.还有一点要注意:这里的设置要在条码放缩前进行。数值越大出来的条码线条越宽。 在Magnification里输入你想设置的条码放缩的比率。由于印刷的精度,规定条码的放缩比为0.8-2.0之间。最好在0.9-1.2之间。数值越大出来的条码整体越宽。 在bar heigh里输入你想要的条码高度。标准规定EAN-13条码的高度为25mm。所以一般都输入25。你可以将条码截断。一般通过蒙板实现。若要变短,最好小于原条码的1/4,最大不可大于原条码的1/3。数值越大出来的条码整体越高。 参数设置好后点击AI工具栏的条码画笔工具(如下图)在工作区点击便会出现条码。 自我经验:条码数字正常应该是 OCR-B 10 PITCH BT 字体,如若不是请打散条码群组后更改。至于条码图形的高低宽窄可自由等比例调整以适合你的设计要求。最后一定试打一张条码,用条码扫描仪扫描测试成不成功(打开WORD软件,扫描仪对准条码扫出的数字核对一下资料便可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶与花语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值