《复杂背景下二维条码图像的研究识别.doc》由会员分享,可在线阅读,更多相关《复杂背景下二维条码图像的研究识别.doc(41页珍藏版)》请在三一文库上搜索。
1、复杂背景下二维条码图像的研究识别 复杂背景下二维条码图像的研究识别复杂背景下二维条码图像的研究识别 目录目录 摘要摘要 .I ABSTRACTII 引言引言.1 1 绪论绪论.2 1.1 课题研究背景和意义2 1.2 国内外研究现状3 1.3 本课题研究内容4 2 图像的预处理图像的预处理.6 2.1 图像灰度化6 2.2 图像滤波7 2.2.1 图像滤波技术.7 2.2.2 高斯滤波.7 2.2.2 中值滤波.8 2.3 二值化阈值选取9 2.3.1 直方图的峰谷法.9 2.3.2 一维最大熵法.10 2.3.3 Otsu法.11 2.3.4 阈值算法的选取.13 2.4 数学形态学操作13
2、 2.4.1 腐蚀.13 2.4.2 膨胀.14 2.4.3 开操作.15 2.4.4 闭操作.15 2.5 最大连通分量提取15 2.6 本章小结16 3 DMDM 码定位码定位.16 3.1 边缘检测17 3.1.1 Roberts算子17 3.1.2 Sobel算子17 3.1.3 log算子18 3.1.4 边缘检测算子的选取.18 3.2 HOUGH变换线段检测19 3.2.1 Hough变换检测直线原理19 3.2.2 Matlab 中的Hough变换.20 3.3 图像校正20 3.3.1 倾角计算.20 复杂背景下二维条码图像的研究识别 3.3.2 图像旋转.22 3.3.3
3、精确裁剪DM条码22 3.4 本章小结23 4 MATLAB 实验结果分析实验结果分析 .24 4.1 DM 码识别24 4.2 DM 码解码31 4.3 实验结果分析32 4.4 本章小结33 5 结论与展望结论与展望.34 致致 谢谢.35 参考文献参考文献.36 复杂背景下二维条码图像的研究识别 I 摘要摘要 Data Matrix 二维条码(DM 码)的外观是一个由许多小方格所组成的正方形或 长方形符号,其资讯的储存是以浅色与深色方格的排列组合,以二位元码(Binary- code)方式来编码,故电脑可直接读取其资料内容,而不需要如传统一维条码的符号 对映表(Character Loo
4、k-up Table)。 然而在实际的 DM 码采集工作中,因为各种因素的综合作用,采集到的图像质量 并不如预期,而且不光只包含有 DM 码图案,还会混入其他各种背景,所以 DM 码图 案所在图像有个比较复杂的背景。 针对以上问题,本文讨论了复杂背景下二维条码的识别,根据 Data Matrix 二维 条码的特征,形成一个解决方案:使用图像滤波技术去除原图像噪声,Otsu 算法对 图像进行二值化,利用数学形态学对图像进行膨胀、腐蚀操作,然后确定最大连通 区域,把条码图案分割出来,其次根据 Hough 变换检测出图像中的两条最长线段, 也就是L型特征图案,最后使用L型特征图案,计算出条码的倾斜角
5、度,对 条码图像进行旋转,使其达到标准位置。 通过对多个有复杂背景的 DM 码的实验,该方案能够从复杂背景中分割出 DM 条码区域,并且能够进行旋转校正。 关键词:Data Matrix;Otsu 算法;Hough 变换;图像旋转 复杂背景下二维条码图像的研究识别 II ABSTRACT The appearance of a two-dimensional bar code is a square or rectangular symbol which made up of many small squares, the information is stored in light and
6、dark colored squares in some way, the computer can read the data directly in the two-dimensional code, without the need for the corresponding table of unified dimensional bar code symbol. However, in the practice of DM code acquisition , because of various factors, the quality of image collected is
7、not as good as expected ,it not only contains the DM code pattern, but also sneaks into a various of backgrounds, so the image of DM code pattern has a complicated background. In view of the above problems, this paper discusses the recognition of 2D barcode in complex background, according to the ch
8、aracteristics of two-dimensional bar code, the solution is as follows :firstly, wipe off the original image noise using Gauss filtering algorithm, binary images via Otsu algorithm, expand and deprive the images using mathematical morphology erosion operation, and then determine the maximum connected
9、 region, segment barcode pattern, secondly, test the two longest lines of images based on the Hough transform , that is the characteristics of “L“ pattern, finally ,calculate the tilt angle of bar code using “L” type pattern , achieve the standard position via the rotation of bar code. Through the e
10、xperiment of many complex backgrounds of DM codes, the scheme can be segmented the DM bar code regions from complex background, and can achieve the standard position via rotation and correction Keywords: Data Matrix; Otsu algorithm; Hough transform; image rotation 复杂背景中二维条码图像的识别研究 1 引言引言 现如今二维条码技术已经
11、得到了广泛的应用,二维条码中的 Data Matrix 二维条 码(简称 DM 码)更是如此,所以本文选取 DM 码作为研究对象。DM 码通常会被 印表机印在不同材质表面上。由于 DM 码只需要读取资料的 20%即可精确辨读,因 此很适合应用在条码容易受损的场所,例如印在暴露于高热、化学清洁剂、机械剥 蚀等特殊环境的零件上。所以识别研究复杂背景中二维条码图像的课题是非常有必 要的。 本论文对复杂背景中二维条码的识别是在 matlab7.1 软件平台上完成的。matlab 软件的功能很强大,特别是在矩阵运算方面,并且 matlab 读取的图像信息也是保存 在矩阵之中。matlab 的图像处理工具
12、箱对图像处理很有帮助,比如本文所用到的一 些方法,动态阈值查找的 otsu 算法,最大连通区域的确定以及用 Hough 变换查找最 长线段等等,大大的方便了处理的过程。 针对复杂背景中 DM 码图像识别的过程,本文有一个完整而详细的论述。在图 像识别处理的每个环节都会分析可能会用到的方法,并且比较各个方法的优缺点, 根据原图像特性找到最适方法。 复杂背景中二维条码图像的识别研究 2 1 绪论绪论 1.1 课题研究背景和意义课题研究背景和意义 二维码技术是在一维码技术基础上发展起来的,其在我国的研究还处于起步阶 段。相比较一维码而言,在同样的面积上二维码可包含的信息量比一维码多几十倍, 而且具有
13、更可靠、抗损坏(破损 25%仍可识读)的特色,同时用条码标签打印机打在 纸上有 100%的对比度,识读效果非常好,甚至可达到一秒钟读取 50 个二维码的速 度。正是由于二维码所独具的以上优势,国内对二维条码这一新技术的需求与日俱 增。 正如大家所知,目前国际上最常用的 DATAMATRIX 二维码由于用点阵的方法 组成数据,可在一个数据矩阵里包含 2300 个数据信息,所以十年前一经发表就引起 全球轰动,但是十年来它的应用和推广却进展缓慢,究其原因,正是因为 DATAMATRIX 二维码的应用需跨越二个技术障碍:首先,如何高效、准确的将其 打印出来;其次,如何高效、准确的识读它。为了解决这两个
14、关键问题,作为一种智 能图像识别技术,机器视觉由此显示出其独一无二的重要性。尽管今天的二维码技 术已经有了许多根本性的突破,但在打刻和识读方面存在的技术局限性也正是二维 码技术发展的瓶颈之所在。金属有黑色金属及有色金属二种,有色金属又分黄色、 白色、银灰色等,同时,金属的表面分为加工面及毛坯面,而加工面也分为多种加 工等级。在这种复杂的加工条件之下,对打刻就提出了非常个性化的要求,打刻机 不仅要求质量稳定,而且需要逐个调整打刻参数。根据美国条码管理委员会(AIM)及 美国汽车协会(AIAG)的规定,直接金属零部件打刻二维码后必须评定打刻的质量级 别,分别为 A、B、C、D、E、F 或 1、2、
15、3、4、5、6,只有 A、B、C 级的质量才 能流到下一步工序,正是上述看似严苛的要求才保证了加工工序的识读效率,因为 在加工过程中,工件表面会遇到机油、冷却水甚至划伤,部分磨损又会增加识读的 难度。目前,在白纸上用条码标签打印机打出 DATAMATRIX 二维码后再进行识读, 已经不存在任何技术问题了,同时,在光洁的金属表面用激光或浮针也能获得优良 的品质。但是,遇到毛坯或深色金属时,用激光或浮针打出的 DATAMATRIX 二维 码是人眼极难识别的,此时就必须借助智能图像识别技术,也就是机器视觉技术。 也正因此,国外几家著名的条码扫描器公司及光学识别设备公司都分别推出了自己 的机器视觉产品
16、,例如 Motorola-Symbol 公司、Microscan 公司、 Cognex 公司以及 Datalogic 公司等。 目前一些条码扫描设备都被外国的企业垄断着,而且价格昂贵。二维码的扫描 识别都是基于智能图像识别技术,而机器视觉技术目前正处于发展阶段,具有一定 的缺陷。况且如果采集到的二维码图像由于光照,距离,复杂背景等产生具有复杂 复杂背景中二维条码图像的识别研究 3 背景的二维条码图像,那么扫描设备可能就不会准确的识读出二维条码中的数据信 息。因此可以从用一个算法从复杂背景中把条码区域识别并分离出来,再送到计算 机中让软件进行识别,这样就可以很准确的读出其中的数据。并且如果将这种
17、技术 做成产品也会成本很低,所以复杂背景中二维条码图像的识别研究是很有意义的! 1.2 国内外研究现状国内外研究现状 复杂背景中的二维条码识别研究,其实最主要的就是目标的识别工作,目标识 别是机器视觉领域的核心问题之一。 目前国内外使用的主要目标识别方法有: (1) 统计模式识别:统计模式识别方法就是把整个目标区域集合化,然后可以分 割成若干互不相交的子集合,子集合从分类的角度来看是有某方面的共性的。选定 一个基本的性质集合,从而可以用它来描述目标的一些基本特性, 图 1-1 统计模式识别模型 同一子集合的各个模式存在一定的差异,有些是由于噪声和采集设备的性质造 成的,而有些却是模式本身性质而
18、引起的随机变化。第一个因素就如写一个字时纸 张的选择、使用何种笔芯对字的影响;第二个因素表现为即使是自己写同一个字时, 虽可能看起来极其相似,但也不可能是百分之百完全相同的。因此当用特征向量来 描述这些字在形状上的相似性时,这些特征向量所对应的特征空间中的点就不会相 同,而是聚集在特征空间的某个区域空间内。而此时此区域空间就能够用来表示该 随机向量实现出的集合,图 1-1 给出了统计模式识别的模型。 (2) 神经元网络的识别方法:神经网络(Neural Networks)的基本思路是神经 元之间相互连接,一个神经元的输入同时也是其他神经元的输出,这就与大脑中的 神经元高度相似,而人体神经元的这
19、些特性被认为是人类防止损伤或者具有记忆力 的来源。它反映出大脑的基本功能和特性,是一个高度复杂的非线性学习系统。神 经元网络具有大规模的并行、分布式存储和处理、自组织、自适应和自学的能力, 因此特别适合处理那些可能需要同时考虑多种原因和条件的、不够十分精确或者比 较模糊的信息处理问题。神经元网络能够不断的学习,并且归纳以及判断目标特性, 复杂背景中二维条码图像的识别研究 4 最后达到能够充分的逼近复杂目标特征的目的。图 1-2 给出了神经元网络的识别模 型。 图 1-2 神经元网络的识别模型 由上面可以看到,前人已经对图像的识别做了很多的探索及其研究,但是每种 方法都有自己的适用范围,因此在复
20、杂背景中识别出二维码图案,明确所处环境, 找到具体的适用方法尤为重要。 1.3 本课题研究内容本课题研究内容 本论文是研究识别复杂背景中的二维条码图案,对图像进行预处理,识出图像 特征“L”型,对识别出的图像进行校正。 (1)原始图像读入,将复杂背景中的 DM 码图像作为目标图像 (2)图象预处理,对于 DM 码的图像特征。将图像转换为灰度图像,采用高斯滤 波,otsu 算法获得动态阈值对图像二值化,形态学操作,区域填充等方法,找出 DM 码区域并提取出。 (3)对提取出的 DM 码区域进行边缘检测,这里用的是 sobel 算子,因为经过它 处理后直线会比较细。有助于后边用 Hough 变换检
21、测线段。 (4)用 Hough 变换可以检测图像中的所有线段,这里我们只需要检测出 DM 码区 域的两条最长线段,因为这两条线段就是条码的特征图像所在的线段。 (5)根据检测出来的两条线段确定 L 型区域,详细计算倾斜角度。对图像进行旋 转校正,使它到达标准位置,然而经过旋转后,会出现黑色区域,因此再对黑色区 域进行修正,使黑色区域变白。 系统框图如图 1-3 所示: 待识别样 本 识别结果 显示 输入数据 预处理 神经网络 识别 复杂背景中二维条码图像的识别研究 5 图 1-3 系统的整体框图 计 算 倾 斜 角 度 图像校正 输出结果 旋 转 图 像 精 确 裁 剪 条 码 直 线 检 测
22、 确 定 L 型 边 缘 检 测 提取条码区域 DM 码定位 原始图像 图像预处理 图 像 灰 度 化 图 像 二 值 化 形 态 学 操 作 连 通 分 量 提 取 滤 波 去 噪 复杂背景中二维条码图像的识别研究 6 2 图像的预处理图像的预处理 2.1 图像灰度化图像灰度化 将彩色图转化成为灰度图的过程称为图像的灰度化处理。由采集设备采集到的 图像为真彩图,真彩图的一个像素点有 1600 多万的颜色变化范围,因此需要更大存 储空间存储,并且如果直接对真彩图处理时,处理过程中所花费的时间很长,而且 处理速度很慢,因此真彩图的灰度化处理,是预处理过程中必不可少的步骤。 在真彩图中的每个像素点
23、的颜色由 R、G、B 三个通道的值共同决定。灰度图像 是具有从黑到白从 0 到 255 级灰度色域等级的单色调图像。在灰度图中每个像素用 8 位数据表示,故而它的每个像素点的取值范围是黑白间的 256 种灰度中的一种。 并且灰度图只有灰度等级,而没有颜色的变化。在真彩图中如果令 R、G、B 三个通 道分量的值相等,那么此时该真彩图就表示灰度图。 常用的图像灰度化的方法有平均值法和加权平均法: 平均值法:用真彩图的 R、G、B 三个分量值求平均数,见等式(2-1)。 (2-1) ( , ) ( ( , )( , )( , )/3f i jR i jG i jB i j 加权平均法:根据人眼对三种
24、原色的敏感度的不同,将三个分量以不同的权值 进行加权平均,此时得到的就是比较合理的灰度图了,见等式(2-2)。 (2-2) ( , )0.30 ( , )0.59 ( , )0.11 ( , )f i jR i jG i jB i j 在 Matlab 的图像处理工具箱中,有 RGB 真彩图转换成灰度图的函数 rgb2gray(), 用此函数也是基于等式 2-2 的。图 2-1,给出了三种灰度化方法产生的灰度图像。 (a) 原图 (b) 加权平均法 (c) rgb2gray 函数灰度化 (d) 平均值法 图 2-1 上述几种方法产生的灰度图像 复杂背景中二维条码图像的识别研究 7 很显然,用平
25、均值法得到的灰度图,不能满足要求,而用加权平均法和 rgb2gray()函数得到的灰度图效果很好,且几乎没差别。 2.2 图像滤波图像滤波 2.2.1 图像滤波技术图像滤波技术 因为在 DM 码的采集的过程之中,由于采集设备本身特性的限制,而产生的比 如高斯噪声,椒盐噪声,脉冲噪声等噪声,而这种噪声是可以通过图像的滤波技术 使其干扰降到最低,常用的图像滤波技术有空域滤波和频域滤波。 空域滤波是借助模板对图像进行邻域操作。所谓的模板,也称之为样板或者窗 口,一般可以认为是一副 ll(这里的 l 通常为奇数,并且远小于图像的尺寸大小) 的小图像,它各个位置上的取值定义为系数值,系数值的大小由具体的
26、功能来决定。 根据图像像素之间的联系从而可以划分成各式各样的模板操作,并来实现各式的功 能。模板运算的主要思想是把给某像素的值作为它本身的灰度值和其邻域像素灰度 值的函数,这个函数可以使线性的也可以是非线性的,而具体的运算可以使卷积操 作,也可以使排序操作等。利用像素本身以及相邻像素的灰度关系来进行的增强操 作,就称之为滤波。空域滤波按功能分可分为平滑滤波器和锐化滤波器。平滑滤波 器主要是模糊和去除噪声,常见的平滑滤波器有高斯低通滤波器和中值滤波器。而 锐化滤波器主要是增强被模糊的细节边缘,常见的有 Sobel 水平边缘增强滤波器。 频域滤波和空域滤波一样,其基础都是卷积定理。频域滤波的基本步
27、骤:计算 需要增强图像的傅里叶变换,乘以一个滤波传递函数 H(u,v),将得到的结果进行傅 里叶反变换,得到 g(x,y)。 针对 DM 码产生噪声的原因,因此本文所用的是空域滤波中的平滑滤波,使噪 声达到最小化。 2.2.2 高斯滤波高斯滤波 高斯滤波器是基于邻域加权平均法的一种线性平滑滤波器。它是根据高斯分布 来确定各模板的系数,也是把接近各模板中心的系数取得比周边的模块的系数大, 这就相当于给邻域做了加权平均,加权平均的一般计算式为式(2-3)。 (2-3) 例如一个 55 的高斯平均的模板如下: ( , )( , ) ( , )( , ) ( , )( , ) ( ,) ( , ) s
28、 tN x y s tN x y w s t f s t g x y w s t 复杂背景中二维条码图像的识别研究 8 14741 41626164 1 72641267 273 41626164 14741 在高斯滤波中,除了要对同一尺寸模板中的不同位置采用不同的系数之外, 还可以选取不同尺寸的模板,最后对小尺寸的模板反复的使用,也可以得到大尺 寸模板的效果。如图 2-2,一个 33 模板可以转化为两个 11 模板的卷积。 1211 111 2422121 1644 1211 图 2-2 33 模板转化为 11 模板 需要注意的是模板越大,平滑的效果越明显,也可能使图像目标区域的边界 变得模
29、糊。因此模板大小的选择很重要。 2.2.2 中值滤波中值滤波 中值滤波法是非线性平滑滤波器。它是通过模板的排序来实现的,设模板尺寸 为 N,N=2r+1,其中 r 为模板的半径,则中值滤波的输出为: (2-4) ,.,. 1 gmedian ffff jj rj rjj r 上式中 media 代表取它们的中值,也就是对模板覆盖的信号序列,按照取值的 大小进行排序,最后取排序后处于中间位置的值。 而用于图像滤波的中值滤波输出可以表示为式(2-5): (2-5) 一般情况下,图像里尺寸小于模板一般的过于亮或者过于暗的区域都将会在滤 波后被消除掉,所以中值滤波的主要功能是让与周围点象素灰度值的差比
30、较大的像 素改取与周围像素值比较接近点的值,这样对孤立的噪声像素的消除能力很强,因 为它不是简单的选取均值,因此产生的模糊也很少,也就是说中值滤波既可以消除 噪声,又可以保持图像的细节,它首先确定一个奇数像素窗口 W,窗口内各像素按 灰度值从小到大排序后,用中间位置灰度值代替原灰度值。Matlab 图像处理工具箱 的 medfilt2 来实现二维中值滤波,其中m,n为模板大小,默认 3 B=medfilt2(A,m,n) 3。如果模板选择过大,那么图像的边缘会变得很模糊,如果选择过小又使得噪声 ( , )gf s t media 复杂背景中二维条码图像的识别研究 9 不能去除。 综上,因为采集
31、设备采集到的图像上的噪声主要以椒盐噪声和高斯噪声为主, 并且一般采集到图像的尺寸选用 3X3 模板的高斯滤波和中值滤波的可以很好的消 除这种噪声,对 DM 码很适用。 2.3 二值化阈值选取二值化阈值选取 图像二值化就是把讲图像上点的灰度值设为 0(黑)或 255(白) ,是整个图像 具有明显的黑白效果,以便于后期操作。而在图像二值化中阈值选取很重要,常用 的阈值法有灰度直方图的峰谷法、最小误差法、最大类间方差法、最大熵自动阈值 法等。 、 2.3.1 直方图的峰谷法直方图的峰谷法 图像的灰度级范围为 0,1,M-1,设灰度级 i 的象素数为,则一幅图像的总象 i n 素 N 为: (2-7)
32、 灰度级 i 出现的概率定义为: (2-8) 式(2-8)反映一幅图像上灰度分布的统计特征,是用像素的灰度作为分割方法的 基础。双峰之间的低谷所对应的灰度值作为阈值,如图 2-3 所示。 图 2-3 但是该方法有一定的局限性,它不适合直方图中双峰的差别很大或者是双峰之 间的低谷比较宽广而平坦的图像,以及单峰直方图的情况。为了解决这个问题提出 1 0 M i i Nn / ii PnN 复杂背景中二维条码图像的识别研究 10 一种改进方法。 设一幅图像只由目标和背景组成,并且知道它的灰度值分布概率密度函数为 P1(Z)和 P2(Z),并且假设目标的像素占整个图像像素比值为 ,所以该图像总的灰 度
33、值概率密度函数 P(Z)可表示为: (2-9) 12 ( )( )(1)( )P ZP ZP Z 假设这里的阈值为 Z,并假设图像由亮背景和暗目标组成组成,即灰度值小于 Z 的取为目标物,大于 Z 的取为背景,如图 2-5 所示 图 2-5 如选定为最终确定的阈值,则将背景像素认错为目标像素的概率是: t Z (2-10) 将目标像素认错为背景象素的概率为: (2-11) 所以总的错误率 E(Z)为: (2-12) 最小阈值就是当 E(Zt)取最小值时变量 Zt 的值。 2.3.2 一维最大熵法一维最大熵法 图像的熵是一种基于图像特征的统计形式,它反映了图像中平均信息量的多少。 而图像的一维熵
34、表征了图像中灰度级分布的聚集特征中信息量的大小。 在信息论里,熵的定义为: (2-13) 1 2()( ) t ZT EZP Z dZ 2 1()( ) T t Z EZPZ dZ ()(1) 1() tTt E ZE ZEZ ( )lg ( )Hp xp x dx 复杂背景中二维条码图像的识别研究 11 因此灰度图的一元灰度熵也可以用上式表示,其中 P(x)为图像中灰度值为 x 的 像素数占总像素数的比例。这里要一维熵最大,就是要确定一个阈值,用此阈值分 割的图像的两部分灰度统计的信息量达到最大。 根据式(2-7)、(2-8)可以计算出图像像素的总数,以及像素级 i 出现的概率 图像灰度直方
35、图如图 2-6 所示 图 2-6 图像灰度直方图 在目标区概率分布满足: ,其中 i =1,2t t i o P P p 在背景区概率分布满足: ,其中 i =t+ 1,t+2L 而 Pt 为: 因此目标和背景区的熵为 目标区: (2-14) 背景区: (2-15) 图像的总熵为: (2-16) 在式(2-16)中,使阈值 H(t)取最大值的 t 就是所要求的阈值。 2.3.3 Otsu 法法 Otsu 法基于最小二乘法的原理,也成为最大类间方差法,是将某一处的阈值分 割成两组,当被分割的两组间方差最大时,此时便求出了阈值 T。 图像的灰度级范围为 0,1,M-1,设灰度级 i 的象素数为,根
36、据式(2-7)、(2-8) i n 可以计算出图像像素的总数,以及像素级 i 出现的概率。 t t t t ttBO P HH P H PPtHtHtH 1 1ln )1 ( t i b P P p t i it PP 1 t i o PPH 11lg t i B PPH 22lg 复杂背景中二维条码图像的识别研究 12 用灰度级阈值 t 将其分成两类和则: 0 C 1 C 对于类有: 0 C 概率: (2-17) 0( ) t i i w tp 均值: (2-18) 00 1 ( )/( ) t i i u tipw t 对于类有: 1 C 概率: (2-19) 1 1 ( ) t i it
37、 w tp 均值: (2-20) 11 1 ( )/( ) m i i t u tipw t 由以上可以求出和类的方差: 0 C 1 C 对于类: (2-21) 0 C 2 2 000 1 ( )( )/( ) l i i tiu tpw t 对于类:(2-22) 1 C 2 2 111 1 ( )( )/( ) m i i t tiu tpw t 因此图像灰度的均值为: (2-23) 0011 ( )( )( )( )uw t u tw t u t 故而和的两类间方差为: 0 C 1 C (2-24) 22 0101 ( )( )( )( )( )tw t w t u tu t 使式子(2-
38、24)取最大值的 t 就是要求的阈值。 如图 2-7 给出了和类的变化范围。 0 C 1 C 复杂背景中二维条码图像的识别研究 13 图 2-7 和类的变化 0 C 1 C 2.3.4 阈值算法的选取阈值算法的选取 以上的算法都是求全局阈值,因为这里我们处理的图像,不考虑光学的不均匀, 以及畸变等,所以使用全局阈值法能够很好的进行二值化。 直方图双峰法,处理速度比较快,但是它对图像的特性要求较高,要求图像的 直方图有明显的双峰结构,而我们所使用的复杂背景的图像它的直方图特性是未知 的。所以直方图双峰法有很大的局限性 一维最大熵值法,对图像的直方图特性没有什么要求,可是在图像的二值化处 理中,它
39、可能会丢掉目标图像的一些边界点信息。 Otsu 法也称为最大类间方差法,是最经典的全局阈值自适应算法,而且该算法 的处理速度很快,能很好的满足要求。 2.4 数学形态学操作数学形态学操作 数学形态学(Mathematical morphology)是以目标的空间形态为基础,对图像 分析的一种数学方法。它能使图像数据简化,使其的形状特性不发生变化,并消除 不相干的结构。基本运算膨胀、腐蚀、开操作、闭操作。 2.4.1 腐蚀腐蚀 腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义 的物体。 B 对 A 进行腐蚀记作 ,定义为: B 对 A 腐蚀的过程如图 2-5 所示: BAAB
40、xBA x )( | 复杂背景中二维条码图像的识别研究 14 图 2-5 B 对 A 腐蚀 腐蚀运算可以简化物体的结构,那些只有一个像素宽的物体或物体的部分将被 去掉,这样就把比较复杂的图像,分解成了几个简单的部分。 Matlab 中 IM2= imerode (IM1,SE)是具体的二值图像或灰度图像的腐蚀运算,其 中 IM1 原始图像,SE 为同性结构结构元素,IM2 为腐蚀后图像。 2.4.2 膨胀膨胀 膨胀是一种递增运算,将与物体接触的所有背景点合并到该物体中,使边界向 外部扩张的过程。可以用来填补物体中的空洞。 用 B 对 A 进行膨胀写作 ,定义为: 先对 B 做关于原点的反射,再
41、将其平移 x,结果是平移后与 A 交集不为空的 x 集合。用 B 来膨胀 A 得到的集合是 的位移与 A 至少有一个非零元素即有相交时, B 的原点位置的集合。 B 对 A 的膨胀过程如图 2-7 所示 图 2-7 B 对 A 的膨胀 Matlab 中 IM2= imdilate (IM1,SE) 是具体的二值图像或灰度图像的膨胀运算, 其中 IM1 原始图像,SE 为结构元素,IM2 为膨胀后图像 通过数学形态学的腐蚀以及膨胀操作,就可以大致确定条码的位置范围。其中 面积最大的区域就是条码的区域,下面根据面积最大的区域来提取最大连通分量。 BA ABxBA x ) ( | B 复杂背景中二维
42、条码图像的识别研究 15 2.4.3 开操作开操作 开操作能够滤除比结构元素小的突出物,断开狭小的连接起到分离的作用。B 对 A 进行的开操作就是先用 B 对 A 腐蚀,然后用 B 对结果进行膨胀。 B 对 A 开操作可以表示为: B 对 A 进行开操作的含义是 的边界通过 B 在 A 的边界内转动时,B 中 的点所能达到的 A 的边界的最远点。 图 2-9 表示了 B 对 A 进行开操作的过程。 图 2-9 2.4.4 闭操作闭操作 闭操作能够把比结构元素小的缺口和孔洞填上,使较短的间断连接,它的主要 作用是连通。B 对 A 进行的闭操作就是先用 B 对 A 膨胀,然后用 B 对结果进行腐
43、蚀 B 对 A 闭操作可以表示为: B 对 A 进行开操作的含义是 的边界通过 B 在 A 的边界外转动时,B 中 的点所能达到的 A 的边界的最远点,图 2-10 表示了 B 对 A 进行开操作的过程。 图 2-10 2.5 最大连通分量提取最大连通分量提取 连通分量指的就是二值图像中某点及其邻域像素值为 1(白点)的区域。而最 大连通分量指的就是所有连通分量之中面积最大的区域。确定了最大连通区域,也 就初步确定了 DM 条码所处的区域,从而将该区域分割出来。 BBABA)( BA BBABA)( BA 复杂背景中二维条码图像的识别研究 16 在经过形态学腐蚀以及膨胀操作后的二值图像中,扫描
44、所有像素点,找到所有 的连通分量,我们这里要求连通分量是 8 连通。然后比较各连通分量的像素的数目, 从而找出最大连通分量。确定了该区域后,比较该区域内所有像素点的横纵坐标, 找出最大以及最小的 x,y。从而可以从原二值图像中提取出条码区域。因为寻找连通 分量的二值图是经过膨胀操作的,所以实际从原二值图像中提取的区域要比实际的 条码区域大,这样也防止条码信息的丢失。 在 matlab 图像处理工具箱中提供了L num=bwlabel(Ibw,conn)这个函数,为我 们寻找连通分量剩了不少步骤。其中 Ibw 为输入二值图像,conn 为可选参数,指明 提取连通分量是 4 连通还是 8 连通,默
45、认为 8;L 为连通分量标注图像,与 Ibw 大 小相同;num 是二值图像中连通分量个数。 图 2-9 为根据最大连通分量在原二值图中找出并分割出的条码区域 图 2-9 分割出的条码区域 从图上很明显可以看出实际提取出的区域要比条码区域大,这样就防止了一些 必要信息的丢失。 2.6 本章小结本章小结 本章主要是对图像的预处理,可以对复杂背景下的条码图像有个比较好的处理 效果。使用 3X3 模板高斯二维滤波器,以及 3X3 模板的中值滤波器,很好的消除了 噪声干扰。在全局阈值选取上,对几种常用的阈值算法进行了比较,发现采用 otsu 算法计算分割阈值进行二值化时,能很好的满足复杂背景图像的处理
46、,同时又不会 使目标图像的信息丢失。在形态学操作方面,介绍了膨胀,腐蚀,开操作以及闭操 作运算,而对于本课题只需要对二值化后的图像进行腐蚀和膨胀操作,就可以确定 出最大连通分量,及时的分割出条码区域,完成条码的初定位,为后期的条码定位 打下基础。 3 DMDM 码定位码定位 在本章节中将详细论述 DM 码精确定位的方法。对前面章节已经分割出的 DM 条码图像进行边缘检测,获得比较好的边缘以助于直线检测。并且将详细说明 复杂背景中二维条码图像的识别研究 17 Hough 变换的算法思路,如何确定最长的两条线段,找出 DM 条码的特征图案 “L”型。完成条码的定位,并且对定位后的图像进行旋转校正,
47、以及对旋转后的图 像进行修正,最后精确的提取 DM 条码区域。 3.1 边缘检测边缘检测 图像的边缘点是指图像中周围像素灰度有阶跃变化或屋顶变化的那些像素点, 即灰度值导数较大或极大的地方。边缘检测可以大幅度的减少数据量,并且剔除不 相关信息,保留图像重要的结构属性。边缘检测基本步骤:平滑滤波、锐化滤波、 边缘判定、边缘连接。 边缘检测算子是一组用于在亮度函数中定位变化的非常重要的据图图像预处理 的方法。 边缘检测方法常用的方法: 基于一阶导数:Roberts 算子、Sobel 算子、Prewitt 算子 基于二阶导数:高斯-拉普拉斯边缘检测算子,Canny 边缘检测算法 3.1.1 Roberts 算子算子 Roberts 算子是最老的算子之一,它是使用局部差分算子寻找边缘的,因此有时 候也称之为梯度交叉算子。由于它使用当前像素的 22 邻域,计算很简单。它的模 板为图 3-1 所示: 。 图 3-1 Roberts 算子 采用 Robert 算子的效果图如图 3-2: 图 3-2 Roberts 算子检测出的边缘 3.1.2 Sobel 算子算子 Sobel 算子是通常用于水平和垂直边缘的一个简单的检测算子。不
链接地址:https://www.31doc.com/p-2030910.html