前言
本章介绍基于机器视觉实现条形码识别,主要包含两个过程,首先检测图像中是否有条形码,如果有则框出并打印条形码信息;
一、什么是条形码?
条形码是一种图形标识符,由一系列宽度不等的黑条和空白组成,按照一定的编码规则排列。它可以用来表达一组信息,并且通常被印刷在商品、图书、邮件等各种物品上。通过使用条形码识别设备,可以快速、准确地读取条形码中的信息,并将其传输到计算机系统进行处理。
条形码的发明可以追溯到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