收藏 分销(赏)

复杂背景下二维条码图像的研究识别论文.doc

上传人:胜**** 文档编号:2603222 上传时间:2024-06-03 格式:DOC 页数:41 大小:1,015KB
下载 相关 举报
复杂背景下二维条码图像的研究识别论文.doc_第1页
第1页 / 共41页
复杂背景下二维条码图像的研究识别论文.doc_第2页
第2页 / 共41页
复杂背景下二维条码图像的研究识别论文.doc_第3页
第3页 / 共41页
复杂背景下二维条码图像的研究识别论文.doc_第4页
第4页 / 共41页
复杂背景下二维条码图像的研究识别论文.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、复杂背景下二维条码图像的研究识别复杂背景下二维条码图像的研究识别目录摘要IABSTRACTII引言11 绪论21.1 课题研究背景和意义21.2 国内外研究现状31.3 本课题研究内容42 图像的预处理62.1 图像灰度化62.2 图像滤波72.2.1 图像滤波技术72.2.2 高斯滤波72.2.2 中值滤波82.3 二值化阈值选取92.3.1 直方图的峰谷法92.3.2 一维最大熵法102.3.3 Otsu法112.3.4 阈值算法的选取132.4 数学形态学操作132.4.1 腐蚀132.4.2 膨胀142.4.3 开操作152.4.4 闭操作152.5 最大连通分量提取152.6 本章小

2、结163 DM码定位163.1 边缘检测173.1.1 Roberts算子173.1.2 Sobel算子173.1.3 log算子183.1.4 边缘检测算子的选取183.2 Hough变换线段检测193.2.1 Hough变换检测直线原理193.2.2 Matlab 中的Hough变换203.3 图像校正203.3.1 倾角计算203.3.2 图像旋转223.3.3 精确裁剪DM条码223.4 本章小结234 MATLAB实验结果分析244.1 DM码识别244.2 DM码解码314.3 实验结果分析324.4 本章小结335 结论与展望34致 谢35参考文献36摘要Data Matrix二

3、维条码(DM码)的外观是一个由许多小方格所组成的正方形或长方形符号,其资讯的储存是以浅色与深色方格的排列组合,以二位元码(Binary-code)方式来编码,故电脑可直接读取其资料内容,而不需要如传统一维条码的符号对映表(Character Look-up Table)。然而在实际的DM码采集工作中,因为各种因素的综合作用,采集到的图像质量并不如预期,而且不光只包含有DM码图案,还会混入其他各种背景,所以DM码图案所在图像有个比较复杂的背景。针对以上问题,本文讨论了复杂背景下二维条码的识别,根据Data Matrix二维条码的特征,形成一个解决方案:使用图像滤波技术去除原图像噪声,Otsu算法

4、对图像进行二值化,利用数学形态学对图像进行膨胀、腐蚀操作,然后确定最大连通区域,把条码图案分割出来,其次根据Hough变换检测出图像中的两条最长线段,也就是L型特征图案,最后使用L型特征图案,计算出条码的倾斜角度,对条码图像进行旋转,使其达到标准位置。通过对多个有复杂背景的DM码的实验,该方案能够从复杂背景中分割出DM条码区域,并且能够进行旋转校正。关键词:Data Matrix;Otsu算法;Hough变换;图像旋转窗体顶端窗体底端ABSTRACTThe appearance of a two-dimensional bar code is a square or rectangular s

5、ymbol which made up of many small squares, the information is stored in light and 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

6、code acquisition , because of various factors, the quality of image collected is 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 d

7、iscusses the recognition of 2D barcode in complex background, according to the characteristics 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 ma

8、thematical morphology erosion operation, and then determine the maximum connected 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 patt

9、ern , achieve the standard position via the rotation of bar code.Through the experiment 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 correctionKeywords: Data Matrix; Otsu a

10、lgorithm; Hough transform; image rotation II复杂背景中二维条码图像的识别研究 引言现如今二维条码技术已经得到了广泛的应用,二维条码中的Data Matrix二维条码(简称DM码)更是如此,所以本文选取DM码作为研究对象。DM码通常会被印表机印在不同材质表面上。由于DM码只需要读取资料的20%即可精确辨读,因此很适合应用在条码容易受损的场所,例如印在暴露于高热、化学清洁剂、机械剥蚀等特殊环境的零件上。所以识别研究复杂背景中二维条码图像的课题是非常有必要的。本论文对复杂背景中二维条码的识别是在matlab7.1软件平台上完成的。matlab软件的功能很强

11、大,特别是在矩阵运算方面,并且matlab读取的图像信息也是保存在矩阵之中。matlab的图像处理工具箱对图像处理很有帮助,比如本文所用到的一些方法,动态阈值查找的otsu算法,最大连通区域的确定以及用Hough变换查找最长线段等等,大大的方便了处理的过程。针对复杂背景中DM码图像识别的过程,本文有一个完整而详细的论述。在图像识别处理的每个环节都会分析可能会用到的方法,并且比较各个方法的优缺点,根据原图像特性找到最适方法。1 绪论1.1 课题研究背景和意义二维码技术是在一维码技术基础上发展起来的,其在我国的研究还处于起步阶段。相比较一维码而言,在同样的面积上二维码可包含的信息量比一维码多几十倍

12、,而且具有更可靠、抗损坏(破损25%仍可识读)的特色,同时用条码标签打印机打在纸上有100%的对比度,识读效果非常好,甚至可达到一秒钟读取50个二维码的速度。正是由于二维码所独具的以上优势,国内对二维条码这一新技术的需求与日俱增。正如大家所知,目前国际上最常用的DATAMATRIX二维码由于用点阵的方法组成数据,可在一个数据矩阵里包含2300个数据信息,所以十年前一经发表就引起全球轰动,但是十年来它的应用和推广却进展缓慢,究其原因,正是因为DATAMATRIX二维码的应用需跨越二个技术障碍:首先,如何高效、准确的将其打印出来;其次,如何高效、准确的识读它。为了解决这两个关键问题,作为一种智能图

13、像识别技术,机器视觉由此显示出其独一无二的重要性。尽管今天的二维码技术已经有了许多根本性的突破,但在打刻和识读方面存在的技术局限性也正是二维码技术发展的瓶颈之所在。金属有黑色金属及有色金属二种,有色金属又分黄色、白色、银灰色等,同时,金属的表面分为加工面及毛坯面,而加工面也分为多种加工等级。在这种复杂的加工条件之下,对打刻就提出了非常个性化的要求,打刻机不仅要求质量稳定,而且需要逐个调整打刻参数。根据美国条码管理委员会(AIM)及美国汽车协会(AIAG)的规定,直接金属零部件打刻二维码后必须评定打刻的质量级别,分别为A、B、C、D、E、F或1、2、3、4、5、6,只有A、B、C级的质量才能流到

14、下一步工序,正是上述看似严苛的要求才保证了加工工序的识读效率,因为在加工过程中,工件表面会遇到机油、冷却水甚至划伤,部分磨损又会增加识读的难度。目前,在白纸上用条码标签打印机打出DATAMATRIX二维码后再进行识读,已经不存在任何技术问题了,同时,在光洁的金属表面用激光或浮针也能获得优良的品质。但是,遇到毛坯或深色金属时,用激光或浮针打出的DATAMATRIX二维码是人眼极难识别的,此时就必须借助智能图像识别技术,也就是机器视觉技术。也正因此,国外几家著名的条码扫描器公司及光学识别设备公司都分别推出了自己的机器视觉产品,例如Motorola-Symbol 公司、Microscan公司、 Co

15、gnex公司以及 Datalogic公司等。目前一些条码扫描设备都被外国的企业垄断着,而且价格昂贵。二维码的扫描识别都是基于智能图像识别技术,而机器视觉技术目前正处于发展阶段,具有一定的缺陷。况且如果采集到的二维码图像由于光照,距离,复杂背景等产生具有复杂背景的二维条码图像,那么扫描设备可能就不会准确的识读出二维条码中的数据信息。因此可以从用一个算法从复杂背景中把条码区域识别并分离出来,再送到计算机中让软件进行识别,这样就可以很准确的读出其中的数据。并且如果将这种技术做成产品也会成本很低,所以复杂背景中二维条码图像的识别研究是很有意义的!1.2 国内外研究现状复杂背景中的二维条码识别研究,其实

16、最主要的就是目标的识别工作,目标识别是机器视觉领域的核心问题之一。目前国内外使用的主要目标识别方法有:(1) 统计模式识别:统计模式识别方法就是把整个目标区域集合化,然后可以分割成若干互不相交的子集合,子集合从分类的角度来看是有某方面的共性的。选定一个基本的性质集合,从而可以用它来描述目标的一些基本特性,图1-1 统计模式识别模型同一子集合的各个模式存在一定的差异,有些是由于噪声和采集设备的性质造成的,而有些却是模式本身性质而引起的随机变化。第一个因素就如写一个字时纸张的选择、使用何种笔芯对字的影响;第二个因素表现为即使是自己写同一个字时,虽可能看起来极其相似,但也不可能是百分之百完全相同的。

17、因此当用特征向量来描述这些字在形状上的相似性时,这些特征向量所对应的特征空间中的点就不会相同,而是聚集在特征空间的某个区域空间内。而此时此区域空间就能够用来表示该随机向量实现出的集合,图1-1 给出了统计模式识别的模型。 (2) 神经元网络的识别方法:神经网络(Neural Networks)的基本思路是神经元之间相互连接,一个神经元的输入同时也是其他神经元的输出,这就与大脑中的神经元高度相似,而人体神经元的这些特性被认为是人类防止损伤或者具有记忆力的来源。它反映出大脑的基本功能和特性,是一个高度复杂的非线性学习系统。神经元网络具有大规模的并行、分布式存储和处理、自组织、自适应和自学的能力,因

18、此特别适合处理那些可能需要同时考虑多种原因和条件的、不够十分精确或者比较模糊的信息处理问题。神经元网络能够不断的学习,并且归纳以及判断目标特性,最后达到能够充分的逼近复杂目标特征的目的。图1-2给出了神经元网络的识别模型。识别结果显示神经网络识别输入数据预处理待识别样本图1-2 神经元网络的识别模型由上面可以看到,前人已经对图像的识别做了很多的探索及其研究,但是每种方法都有自己的适用范围,因此在复杂背景中识别出二维码图案,明确所处环境,找到具体的适用方法尤为重要。1.3 本课题研究内容本论文是研究识别复杂背景中的二维条码图案,对图像进行预处理,识出图像特征“L”型,对识别出的图像进行校正。(1

19、)原始图像读入,将复杂背景中的DM码图像作为目标图像(2)图象预处理,对于DM码的图像特征。将图像转换为灰度图像,采用高斯滤波,otsu算法获得动态阈值对图像二值化,形态学操作,区域填充等方法,找出DM码区域并提取出。(3)对提取出的DM码区域进行边缘检测,这里用的是sobel算子,因为经过它处理后直线会比较细。有助于后边用Hough变换检测线段。(4)用Hough变换可以检测图像中的所有线段,这里我们只需要检测出DM码区域的两条最长线段,因为这两条线段就是条码的特征图像所在的线段。(5)根据检测出来的两条线段确定L型区域,详细计算倾斜角度。对图像进行旋转校正,使它到达标准位置,然而经过旋转后

20、,会出现黑色区域,因此再对黑色区域进行修正,使黑色区域变白。系统框图如图1-3所示:计算倾斜角度 图像校正 输出结果 旋转图像 精确裁剪条码 直线检测 确定L型 边缘检测 提取条码区域 DM码定位 原始图像 图像预处理 图像灰度化 图像二值化 形态学操作 连通分量提取 滤波去噪 图1-3 系统的整体框图2 图像的预处理2.1 图像灰度化将彩色图转化成为灰度图的过程称为图像的灰度化处理。由采集设备采集到的图像为真彩图,真彩图的一个像素点有1600多万的颜色变化范围,因此需要更大存储空间存储,并且如果直接对真彩图处理时,处理过程中所花费的时间很长,而且处理速度很慢,因此真彩图的灰度化处理,是预处理

21、过程中必不可少的步骤。在真彩图中的每个像素点的颜色由R、G、B三个通道的值共同决定。灰度图像是具有从黑到白从0到255级灰度色域等级的单色调图像。在灰度图中每个像素用8位数据表示,故而它的每个像素点的取值范围是黑白间的256种灰度中的一种。并且灰度图只有灰度等级,而没有颜色的变化。在真彩图中如果令R、G、B三个通道分量的值相等,那么此时该真彩图就表示灰度图。常用的图像灰度化的方法有平均值法和加权平均法:平均值法:用真彩图的R、G、B三个分量值求平均数,见等式(2-1)。 (2-1)加权平均法:根据人眼对三种原色的敏感度的不同,将三个分量以不同的权值进行加权平均,此时得到的就是比较合理的灰度图了

22、,见等式(2-2)。 (2-2)在Matlab的图像处理工具箱中,有RGB真彩图转换成灰度图的函数rgb2gray(),用此函数也是基于等式2-2的。图2-1,给出了三种灰度化方法产生的灰度图像。(a) 原图 (b) 加权平均法(c) rgb2gray函数灰度化 (d) 平均值法图2-1 上述几种方法产生的灰度图像很显然,用平均值法得到的灰度图,不能满足要求,而用加权平均法和rgb2gray()函数得到的灰度图效果很好,且几乎没差别。2.2 图像滤波2.2.1 图像滤波技术因为在DM码的采集的过程之中,由于采集设备本身特性的限制,而产生的比如高斯噪声,椒盐噪声,脉冲噪声等噪声,而这种噪声是可以

23、通过图像的滤波技术使其干扰降到最低,常用的图像滤波技术有空域滤波和频域滤波。空域滤波是借助模板对图像进行邻域操作。所谓的模板,也称之为样板或者窗口,一般可以认为是一副ll(这里的l通常为奇数,并且远小于图像的尺寸大小)的小图像,它各个位置上的取值定义为系数值,系数值的大小由具体的功能来决定。根据图像像素之间的联系从而可以划分成各式各样的模板操作,并来实现各式的功能。模板运算的主要思想是把给某像素的值作为它本身的灰度值和其邻域像素灰度值的函数,这个函数可以使线性的也可以是非线性的,而具体的运算可以使卷积操作,也可以使排序操作等。利用像素本身以及相邻像素的灰度关系来进行的增强操作,就称之为滤波。空

24、域滤波按功能分可分为平滑滤波器和锐化滤波器。平滑滤波器主要是模糊和去除噪声,常见的平滑滤波器有高斯低通滤波器和中值滤波器。而锐化滤波器主要是增强被模糊的细节边缘,常见的有Sobel水平边缘增强滤波器。频域滤波和空域滤波一样,其基础都是卷积定理。频域滤波的基本步骤:计算需要增强图像的傅里叶变换,乘以一个滤波传递函数H(u,v),将得到的结果进行傅里叶反变换,得到g(x,y)。针对DM码产生噪声的原因,因此本文所用的是空域滤波中的平滑滤波,使噪声达到最小化。2.2.2 高斯滤波高斯滤波器是基于邻域加权平均法的一种线性平滑滤波器。它是根据高斯分布来确定各模板的系数,也是把接近各模板中心的系数取得比周

25、边的模块的系数大,这就相当于给邻域做了加权平均,加权平均的一般计算式为式(2-3)。 (2-3) 例如一个55的高斯平均的模板如下:在高斯滤波中,除了要对同一尺寸模板中的不同位置采用不同的系数之外,还可以选取不同尺寸的模板,最后对小尺寸的模板反复的使用,也可以得到大尺寸模板的效果。如图2-2,一个33模板可以转化为两个11模板的卷积。图2-2 33模板转化为11模板需要注意的是模板越大,平滑的效果越明显,也可能使图像目标区域的边界变得模糊。因此模板大小的选择很重要。2.2.2 中值滤波中值滤波法是非线性平滑滤波器。它是通过模板的排序来实现的,设模板尺寸为N,N=2r+1,其中r为模板的半径,则

26、中值滤波的输出为: (2-4)上式中media代表取它们的中值,也就是对模板覆盖的信号序列,按照取值的大小进行排序,最后取排序后处于中间位置的值。而用于图像滤波的中值滤波输出可以表示为式(2-5): (2-5)一般情况下,图像里尺寸小于模板一般的过于亮或者过于暗的区域都将会在滤波后被消除掉,所以中值滤波的主要功能是让与周围点象素灰度值的差比较大的像素改取与周围像素值比较接近点的值,这样对孤立的噪声像素的消除能力很强,因为它不是简单的选取均值,因此产生的模糊也很少,也就是说中值滤波既可以消除噪声,又可以保持图像的细节,它首先确定一个奇数像素窗口W,窗口内各像素按灰度值从小到大排序后,用中间位置灰

27、度值代替原灰度值。Matlab图像处理工具箱的medfilt2来实现二维中值滤波,其中m,n为模板大小,默认3 3。如果模板选择过大,那么图像的边缘会变得很模糊,如果选择过小又使得噪声不能去除。综上,因为采集设备采集到的图像上的噪声主要以椒盐噪声和高斯噪声为主,并且一般采集到图像的尺寸选用3X3模板的高斯滤波和中值滤波的可以很好的消除这种噪声,对DM码很适用。2.3 二值化阈值选取图像二值化就是把讲图像上点的灰度值设为0(黑)或255(白),是整个图像具有明显的黑白效果,以便于后期操作。而在图像二值化中阈值选取很重要,常用的阈值法有灰度直方图的峰谷法、最小误差法、最大类间方差法、最大熵自动阈值

28、法等。、2.3.1 直方图的峰谷法图像的灰度级范围为0,1,M-1,设灰度级i的象素数为,则一幅图像的总象素N为: (2-7)灰度级i出现的概率定义为: (2-8) 式(2-8)反映一幅图像上灰度分布的统计特征,是用像素的灰度作为分割方法的基础。双峰之间的低谷所对应的灰度值作为阈值,如图2-3所示。图2-3但是该方法有一定的局限性,它不适合直方图中双峰的差别很大或者是双峰之间的低谷比较宽广而平坦的图像,以及单峰直方图的情况。为了解决这个问题提出一种改进方法。设一幅图像只由目标和背景组成,并且知道它的灰度值分布概率密度函数为P1(Z)和P2(Z),并且假设目标的像素占整个图像像素比值为,所以该图

29、像总的灰度值概率密度函数P(Z)可表示为: (2-9)假设这里的阈值为Z,并假设图像由亮背景和暗目标组成组成,即灰度值小于Z的取为目标物,大于Z的取为背景,如图2-5所示图2-5如选定为最终确定的阈值,则将背景像素认错为目标像素的概率是: (2-10)将目标像素认错为背景象素的概率为: (2-11)所以总的错误率E(Z)为: (2-12)最小阈值就是当E(Zt)取最小值时变量Zt的值。2.3.2 一维最大熵法图像的熵是一种基于图像特征的统计形式,它反映了图像中平均信息量的多少。而图像的一维熵表征了图像中灰度级分布的聚集特征中信息量的大小。在信息论里,熵的定义为: (2-13)因此灰度图的一元灰

30、度熵也可以用上式表示,其中P(x)为图像中灰度值为x的像素数占总像素数的比例。这里要一维熵最大,就是要确定一个阈值,用此阈值分割的图像的两部分灰度统计的信息量达到最大。根据式(2-7)、(2-8)可以计算出图像像素的总数,以及像素级i出现的概率图像灰度直方图如图2-6所示图2-6 图像灰度直方图在目标区概率分布满足: ,其中i =1,2t 在背景区概率分布满足: ,其中i =t+ 1,t+2L而Pt为: 因此目标和背景区的熵为目标区: (2-14)背景区: (2-15)图像的总熵为: (2-16) 在式(2-16)中,使阈值H(t)取最大值的t就是所要求的阈值。2.3.3 Otsu法Otsu法

31、基于最小二乘法的原理,也成为最大类间方差法,是将某一处的阈值分割成两组,当被分割的两组间方差最大时,此时便求出了阈值T。图像的灰度级范围为0,1,M-1,设灰度级i的象素数为,根据式(2-7)、(2-8)可以计算出图像像素的总数,以及像素级i出现的概率。 用灰度级阈值t将其分成两类和则: 对于类有:概率: (2-17)均值: (2-18)对于类有:概率: (2-19)均值: (2-20)由以上可以求出和类的方差:对于类: (2-21)对于类:(2-22)因此图像灰度的均值为: (2-23)故而和的两类间方差为: (2-24)使式子(2-24)取最大值的t就是要求的阈值。如图2-7给出了和类的变

32、化范围。图2-7 和类的变化2.3.4 阈值算法的选取以上的算法都是求全局阈值,因为这里我们处理的图像,不考虑光学的不均匀,以及畸变等,所以使用全局阈值法能够很好的进行二值化。直方图双峰法,处理速度比较快,但是它对图像的特性要求较高,要求图像的直方图有明显的双峰结构,而我们所使用的复杂背景的图像它的直方图特性是未知的。所以直方图双峰法有很大的局限性一维最大熵值法,对图像的直方图特性没有什么要求,可是在图像的二值化处理中,它可能会丢掉目标图像的一些边界点信息。Otsu法也称为最大类间方差法,是最经典的全局阈值自适应算法,而且该算法的处理速度很快,能很好的满足要求。 2.4 数学形态学操作数学形态

33、学(Mathematical morphology)是以目标的空间形态为基础,对图像分析的一种数学方法。它能使图像数据简化,使其的形状特性不发生变化,并消除不相干的结构。基本运算膨胀、腐蚀、开操作、闭操作。2.4.1 腐蚀腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。B对A进行腐蚀记作 ,定义为: B对A腐蚀的过程如图2-5所示:图2-5 B对A腐蚀腐蚀运算可以简化物体的结构,那些只有一个像素宽的物体或物体的部分将被去掉,这样就把比较复杂的图像,分解成了几个简单的部分。Matlab中IM2= imerode (IM1,SE)是具体的二值图像或灰度图像的腐蚀运算,其

34、中IM1原始图像,SE为同性结构结构元素,IM2为腐蚀后图像。2.4.2 膨胀膨胀是一种递增运算,将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。可以用来填补物体中的空洞。用B对A进行膨胀写作 ,定义为: 先对B做关于原点的反射,再将其平移x,结果是平移后与A交集不为空的x集合。用B来膨胀A得到的集合是 的位移与A至少有一个非零元素即有相交时,B的原点位置的集合。B对A的膨胀过程如图2-7所示图2-7 B对A的膨胀Matlab中IM2= imdilate (IM1,SE) 是具体的二值图像或灰度图像的膨胀运算,其中IM1原始图像,SE为结构元素,IM2为膨胀后图像通过数学形态学

35、的腐蚀以及膨胀操作,就可以大致确定条码的位置范围。其中面积最大的区域就是条码的区域,下面根据面积最大的区域来提取最大连通分量。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对结果进行腐蚀B

36、对A闭操作可以表示为: B对A进行开操作的含义是 的边界通过B在A的边界外转动时,B中的点所能达到的A的边界的最远点,图2-10表示了B对A进行开操作的过程。图2-102.5 最大连通分量提取连通分量指的就是二值图像中某点及其邻域像素值为1(白点)的区域。而最大连通分量指的就是所有连通分量之中面积最大的区域。确定了最大连通区域,也就初步确定了DM条码所处的区域,从而将该区域分割出来。在经过形态学腐蚀以及膨胀操作后的二值图像中,扫描所有像素点,找到所有的连通分量,我们这里要求连通分量是8连通。然后比较各连通分量的像素的数目,从而找出最大连通分量。确定了该区域后,比较该区域内所有像素点的横纵坐标,

37、找出最大以及最小的x,y。从而可以从原二值图像中提取出条码区域。因为寻找连通分量的二值图是经过膨胀操作的,所以实际从原二值图像中提取的区域要比实际的条码区域大,这样也防止条码信息的丢失。在matlab图像处理工具箱中提供了L num=bwlabel(Ibw,conn)这个函数,为我们寻找连通分量剩了不少步骤。其中Ibw为输入二值图像,conn为可选参数,指明提取连通分量是4连通还是8连通,默认为8;L为连通分量标注图像,与Ibw大小相同;num是二值图像中连通分量个数。图2-9为根据最大连通分量在原二值图中找出并分割出的条码区域图2-9 分割出的条码区域从图上很明显可以看出实际提取出的区域要比

38、条码区域大,这样就防止了一些必要信息的丢失。2.6 本章小结本章主要是对图像的预处理,可以对复杂背景下的条码图像有个比较好的处理效果。使用3X3模板高斯二维滤波器,以及3X3模板的中值滤波器,很好的消除了噪声干扰。在全局阈值选取上,对几种常用的阈值算法进行了比较,发现采用otsu算法计算分割阈值进行二值化时,能很好的满足复杂背景图像的处理,同时又不会使目标图像的信息丢失。在形态学操作方面,介绍了膨胀,腐蚀,开操作以及闭操作运算,而对于本课题只需要对二值化后的图像进行腐蚀和膨胀操作,就可以确定出最大连通分量,及时的分割出条码区域,完成条码的初定位,为后期的条码定位打下基础。3 DM码定位在本章节

39、中将详细论述DM码精确定位的方法。对前面章节已经分割出的DM条码图像进行边缘检测,获得比较好的边缘以助于直线检测。并且将详细说明Hough变换的算法思路,如何确定最长的两条线段,找出DM条码的特征图案“L”型。完成条码的定位,并且对定位后的图像进行旋转校正,以及对旋转后的图像进行修正,最后精确的提取DM条码区域。3.1 边缘检测图像的边缘点是指图像中周围像素灰度有阶跃变化或屋顶变化的那些像素点,即灰度值导数较大或极大的地方。边缘检测可以大幅度的减少数据量,并且剔除不相关信息,保留图像重要的结构属性。边缘检测基本步骤:平滑滤波、锐化滤波、边缘判定、边缘连接。边缘检测算子是一组用于在亮度函数中定位

40、变化的非常重要的据图图像预处理的方法。边缘检测方法常用的方法:基于一阶导数: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 算子是通常用于水平和垂直边缘的一个简单的检测算子。不仅能够检

41、测边缘点,而且可以抑制噪声。Sobel边缘检测算子的33模板为: 图3-2 Sobel算子3X3模板使用Sobel 算子的实际效果如图3-4:图3-4 sobel算子检测出的边缘3.1.3 log算子Log算子是一种二阶导数算子,由于二阶导数过零点,其一可能对图像形状做过分的平滑,会明显的丢失掉角点,其二它会产生环形边缘的倾向,在很多的应用中它会是个明显的缺陷 Log算子常用的模板如图3-5所示:图3-5 log算子的模板 使用log算子的实际效果如图3-6:图3-6 log算子检测出的边缘3.1.4 边缘检测算子的选取Robert算子几乎不能抑制噪声,而且掩膜过于简单; Sobel算子有较好

42、的处理结果,有一定的抑噪能力,并且是以prewitt算子为的基础。Canny算子处理效果较好,而且抑制噪声功能较强,但处理时间过长。log算子会对图像形状做过分的平滑,会明显的丢失掉角点,而我们要检测出“L”型角点很重要。因此本文选用sobel算子作为边缘检测的算子。3.2 Hough变换线段检测Hough是用来检测直线和曲线的,然而最初的方法需要知道图像边界线的解析式,但却不需要有关区域的先验知识。而改进的Hough变换是对图像全局进行分割的边缘点的连接技术,Hough变换具有抗干扰能力,任何形状的曲线都可以检测出来,即使曲线上有断裂,并且不受图像旋转的影响,因此在图像预处理中应用很广泛。下

43、面只介绍检测直线的方法。3.2.1 Hough变换检测直线原理设图像中的通过某点的直线方程为: (3-1)式(3-1)中b为该直线在y轴上的截距,k为斜率。b,k可以取任意值,这就表明同一方程可以理解为在参数空间的方程,所以通过该点的方程亦可以表示成: (3-2) 同样通过另一点的直线在参数空间可以表示为: (3-3)那么在参数空间里的两条直线的唯一公共点就是原图像里连接两点的唯一的直线,如图3-7所示 yy=kx+b bb=-kx2+y2B(x2,y2) A=(x1,y1)b=-kx1+y1 x k图3-7 图像空间与参数空间的直线这也就是说明,图像空间里的每一条直线,在参数空间k,b里都有唯一确定的点与之对应,直线的任意一部分都变换为同一个点。直线检测的基本思想就是确定图像中所有直线的像素,将通过这么多像素的全部直线,变换到参数空间所对应的点。在原图像中的所以可

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服