基于MATLAB的条码二维码识别系统

本文介绍了一个基于MATLAB的EAN-13条形码识别系统设计,通过图像处理步骤如读取、加噪、滤波、二值化处理,实现条码的正确识读。在预处理阶段,使用了imread、imnoise和中值滤波等函数,最终通过二值化和特定的译码算法得出条码信息。尽管系统在某些情况下可能出现误码,但总体上能够有效识别条码。
摘要由CSDN通过智能技术生成

基于MATLAB的条码二维码识别系统

  1. 课题介绍

本设计研究的是基于数字图像处理的EAN-13条形码识别算法,通过工具平台MATLAB实现。其中图像处理部分是条码识别重要的前期工作,利用MATLAB强大的图象处理工具箱实现图像的读入、加噪仿真、滤波、二值化处理等工作,最终得到高质量的二值化图像。条码识别就是在二值图像的基础上实现,二值图像的质量直接关系到条码能否正确识读。


二、设计步骤与结果

2.1设计步骤

对于一个条码图像我们先要对其进行一定的处理才能达到正确译码的目的。而要对其进行处理,首先是要将其读入。由于有噪声的存在,必须对其进行滤波。也可以人为地加入一定类型的噪声仿真,然后用合适的滤波方法进行滤波,这样有助于理解各种滤波方法所针对的噪声类型。最后就是要二值化,得到二值图像。

条码图像预处理流程图如图1-7所示。


v2-8d507e091aeccc79374533d4b1c876fa_b.jpg

图2-1 条码图像预处理流程图


⑴ MATLAB中利用函数imread来实现图像文件的读取操作。图1-8是首次需要处理的条码图片。


v2-e0cd94f82914f8d6801004c2d786dc5e_b.jpg

图2-2 需要处理的条码

一般情况下,通过imread函数读取的大多数图像都是8位的。当把这些图像加载到内存中时,MATLAB就将其存储在类uint8中。此外,MATLAB还支持16位的PNG和TIFF图像。当用户读取这类图像时,MATLAB就将其存储在类uint16中。而对于索引图像来说,即使图像矩阵的本身为uint8或uint16,imread函数仍将颜色映射表读取并存储在一个双精度浮点类型的矩阵中。

例如:I=imread('008.bmp');

该语句可将条码图像读入内存,并以矩阵形式存储。

⑵ MATLAB的图像处理工具箱提供imnoise函数,可以用该函数给图像添加不同种类的噪声。该函数的调用格式如下:

J=imnoise(I,‘type’,parameters)

表1-3列出了imnoise函数能够产生的五种噪声及其对应参数。

表1-3 imnoise函数支持的噪声种类及参数说明


v2-3bf4d3a283ab645c3953d08d5ece46a0_b.jpg

例如:J=imnoise(I,'salt & pepper',0.01);

该语句实现在条码图像I中加入椒盐噪声。

⑶ 条码图像被采集进入计算机,由于设备、以及传输过程中的各种因素的影响,一些噪声将会对图像的质量产生影响。任何一幅未经处理的原始图象,都存在一定程度的噪声干扰。不同的噪声干扰,处理方法不同。影响条码图像质量最典型的噪声是椒盐噪声。椒盐噪声的特点是此干扰在图像中是以孤立点的形式存在的。

针对噪声的类型,采用中值滤波。中值滤波是一种非线性信号处理方法。可以克服线性滤波器如最小均方滤波,平均值滤波(平滑滤波)等所带来的图像细节模糊。而且对于脉冲干扰及点状噪声有良好抑制作用,能较好保持图像边缘。它可以起到既消除噪声又保持图像细节的作用。

为了达到好的滤波效果应选择合适的滤波窗口。从条码图像的特征来讨论选择采用的中值滤波窗口。条码图像的特点在于是由纵向一定宽度黑白条空组成,我们建立不同大小的模板,对含有噪声的图像进行滤波处理,比较它们滤除噪声干扰的效果。

在MATLAB中可以使用imfilter函数或filter2函数调用创建好的滤波器(可以是预定义滤波器,也可以是自定义滤波器)对图像进行滤波。

指定了一个阈值T之后,将图像中的像素与阈值作比较,如果图像中某像素的灰度值小于该阈值,则将该像素的灰度值设置为0,否则灰度值设置为255。

按下式对图像进行处理可得到二值图像g(x,y):

v2-8d2b6a504e5d7e9e93e9e692d5b02bfe_b.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值