您的位置:首页 > 其它

条形码图像识别技术

2009-10-29 15:23 351 查看
论文:

《一维条形码识别系统的设计与实现》钟书成 成都信息工程学院软件工程系



1 中值滤波去噪
中值滤波是一种非线形信号处理方法,在这里由于条码图片是列的形式,所以采用改进的5个点采样窗口,取一列上的5个点。扫描整幅图片,对窗口内的像素点按像素值大小排序,最后取中间值代替窗口内所有像素点的原始像素值。
2 二值化处理
这其中有三个步骤,首先,对图片的灰度值进行统计,其次再求阈值,最后根据求得的阈值,将图片转换为像素值只有0,1的黑白图片,以方便进一步分析。
阈值的选取,采用的是大律法。其原理为,取某个灰度值,以它为分界将图像分为灰度值大小两类,分别计算这两类中的像素点数及灰度平均值。然后计算它们的类间方差,取方差最大值对应的灰度为阈值。

3 边缘检测

这里的边缘检测,不是检测图片的边缘,而是查找一块比较适合条码识别的区域,并将这块区域的上下边界回传给它的主调函数。

l 采用的方法是依次扫描图片的每一行,求取每一行中的黑点个数
l 统计有黑点的行的数量
l 求出图片中所有的黑点数
l 求出平均每行的黑点数(总黑点数除以有黑点的行数)
l 判断一个行是否适合于识别,判定的规范是:如果一行和它的下一行比较相差的黑点个数在5个以内,而且这一行的黑点个数比每行的平均数的75%多,则认为这一行可以用于识别。
l 找到条形码用于识别的上下边缘,通过以上方法,扫描图片,得到每行是否适合用于识别(用0和1标记)。寻找最佳的识别范围则是通过扫描图片的每一行,查找一定范围内的可以用于识别的行数大于某个值时,这个范围即可以作为最佳的识别区域。如果没有找到,则认为图片严重受损,不能用于识别。

4 条形码识别

条形码识别过程包括:垂直投影、计算宽度、码字识别等。



l 垂直投影:同水平投影一样,先求每一列的黑点个数(在已经找到的上下边界范围内),总黑点数,统计共有多少有黑点的列,求出每列平均有多少个黑点。判定是否为条的规范是:如果这一列的黑点数大于平均数的75%,则认为这列像素是属于条的范围,同时将这列置1,否则置为0。
l 求各个条空的宽度:在垂直投影的基础上根据条空的边沿的变化来求。
l 识别码字,根据编码原理的逆过程。

缺点:
在图像处理中大量使用到复杂的循环处理,影响了程序的执行效率。
其次在图像特别模糊或背景色干扰太多的时候,识别效果不好。
未实现倾斜校正,所以系统的通用性不好,当图片的倾斜角度太大的时候,系统无法识别。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: