最新复杂背景下二维条码图像的研究识别

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

复杂背景下二维条码图像的研究识别
复杂背景下二维条码图像的研究识别
目录
摘要 (I)
ABSTRACT (II)
引言 (1)
1 绪论 (2)
1.1课题研究背景和意义 (2)
1.2国内外研究现状 (3)
1.3本课题研究内容 (4)
2 图像的预处理 (5)
2.1图像灰度化 (5)
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.4.1 腐蚀 (13)
2.4.2 膨胀 (14)
2.4.3 开操作 (15)
2.4.4 闭操作 (15)
2.5最大连通分量提取 (15)
2.6本章小结 (16)
3 DM码定位 (16)
3.1边缘检测 (17)
3.1.1 Roberts算子 (17)
3.1.2 Sobel算子 (17)
3.1.3 log算子 (18)
3.1.4 边缘检测算子的选取 (18)
3.2H OUGH变换线段检测 (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 精确裁剪DM条码 (22)
3.4本章小结 (23)
4 MATLAB实验结果分析 (24)
4.1DM码识别 (24)
4.2DM码解码 (31)
4.3实验结果分析 (32)
4.4本章小结 (33)
5 结论与展望 (34)
致谢 (35)
参考文献 (36)
摘要
Data Matrix二维条码(DM码)的外观是一个由许多小方格所组成的正方形或长方形符号,其资讯的储存是以浅色与深色方格的排列组合,以二位元码(Binary-code)方式来编码,故电脑可直接读取其资料内容,而不需要如传统一维条码的符号对映表(Character Look-up Table)。

然而在实际的DM码采集工作中,因为各种因素的综合作用,采集到的图像质量并不如预期,而且不光只包含有DM码图案,还会混入其他各种背景,所以DM码图案所在图像有个比较复杂的背景。

针对以上问题,本文讨论了复杂背景下二维条码的识别,根据Data Matrix二维条码的特征,形成一个解决方案:使用图像滤波技术去除原图像噪声,Otsu算法对图像进行二值化,利用数学形态学对图像进行膨胀、腐蚀操作,然后确定最大连通区域,把条码图案分割出来,其次根据Hough变换检测出图像中的两条最长线段,也就是‘L’型特征图案,最后使用‘L’型特征图案,计算出条码的倾斜角度,对条码图像进行旋转,使其达到标准位置。

通过对多个有复杂背景的DM码的实验,该方案能够从复杂背景中分割出DM 条码区域,并且能够进行旋转校正。

关键词:Data Matrix;Otsu算法;Hough变换;图像旋转
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 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 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 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 mathematical 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 pattern , 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 correction
Keywords: Data Matrix; Otsu algorithm; Hough transform; image rotation
现如今二维条码技术已经得到了广泛的应用,二维条码中的Data Matrix二维条码(简称DM码)更是如此,所以本文选取DM码作为研究对象。

DM码通常会被印表机印在不同材质表面上。

由于DM码只需要读取资料的20%即可精确辨读,因此很适合应用在条码容易受损的场所,例如印在暴露于高热、化学清洁剂、机械剥蚀等特殊环境的零件上。

所以识别研究复杂背景中二维条码图像的课题是非常有必要的。

本论文对复杂背景中二维条码的识别是在matlab7.1软件平台上完成的。

matlab软件的功能很强大,特别是在矩阵运算方面,并且matlab读取的图像信息也是保存在矩阵之中。

matlab的图像处理工具箱对图像处理很有帮助,比如本文所用到的一些方法,动态阈值查找的otsu算法,最大连通区域的确定以及用Hough 变换查找最长线段等等,大大的方便了处理的过程。

针对复杂背景中DM码图像识别的过程,本文有一个完整而详细的论述。

在图像识别处理的每个环节都会分析可能会用到的方法,并且比较各个方法的优缺点,根据原图像特性找到最适方法。

1.1 课题研究背景和意义
二维码技术是在一维码技术基础上发展起来的,其在我国的研究还处于起步阶段。

相比较一维码而言,在同样的面积上二维码可包含的信息量比一维码多几十倍,而且具有更可靠、抗损坏(破损25%仍可识读)的特色,同时用条码标签打印机打在纸上有100%的对比度,识读效果非常好,甚至可达到一秒钟读取50个二维码的速度。

正是由于二维码所独具的以上优势,国内对二维条码这一新技术的需求与日俱增。

正如大家所知,目前国际上最常用的DATAMATRIX二维码由于用点阵的方法组成数据,可在一个数据矩阵里包含2300个数据信息,所以十年前一经发表就引起全球轰动,但是十年来它的应用和推广却进展缓慢,究其原因,正是因为DATAMATRIX二维码的应用需跨越二个技术障碍:首先,如何高效、准确的将其打印出来;其次,如何高效、准确的识读它。

为了解决这两个关键问题,作为一种智能图像识别技术,机器视觉由此显示出其独一无二的重要性。

尽管今天的二维码技术已经有了许多根本性的突破,但在打刻和识读方面存在的技术局限性也正是二维码技术发展的瓶颈之所在。

金属有黑色金属及有色金属二种,有色金属又分黄色、白色、银灰色等,同时,金属的表面分为加工面及毛坯面,而加工面也分为多种加工等级。

在这种复杂的加工条件之下,对打刻就提出了非常个性化的要求,打刻机不仅要求质量稳定,而且需要逐个调整打刻参数。

根据美国条码管理委员会(AIM)及美国汽车协会(AIAG)的规定,直接金属零部件打刻二维码后必须评定打刻的质量级别,分别为A、B、C、D、E、F或1、2、3、4、5、6,只有A、B、C 级的质量才能流到下一步工序,正是上述看似严苛的要求才保证了加工工序的识读效率,因为在加工过程中,工件表面会遇到机油、冷却水甚至划伤,部分磨损又会增加识读的难度。

目前,在白纸上用条码标签打印机打出DATAMATRIX二维码后再进行识读,已经不存在任何技术问题了,同时,在光洁的金属表面用激光或浮针也能获得优良的品质。

但是,遇到毛坯或深色金属时,用激光或浮针打出的DATAMATRIX二维码是人眼极难识别的,此时就必须借助智能图像识别技术,也就是机器视觉技术。

也正因此,国外几家著名的条码扫描器公司及光学识别设备公司都分别推出了自己的机器视觉产品,例如Motorola-Symbol 公司、Microscan公司、 Cognex公司以及 Datalogic公司等。

目前一些条码扫描设备都被外国的企业垄断着,而且价格昂贵。

二维码的扫描识别都是基于智能图像识别技术,而机器视觉技术目前正处于发展阶段,具有一定的缺陷。

况且如果采集到的二维码图像由于光照,距离,复杂背景等产生具有复杂
背景的二维条码图像,那么扫描设备可能就不会准确的识读出二维条码中的数据信息。

因此可以从用一个算法从复杂背景中把条码区域识别并分离出来,再送到计算机中让软件进行识别,这样就可以很准确的读出其中的数据。

并且如果将这种技术做成产品也会成本很低,所以复杂背景中二维条码图像的识别研究是很有意义的!
1.2 国内外研究现状
复杂背景中的二维条码识别研究,其实最主要的就是目标的识别工作,目标识别是机器视觉领域的核心问题之一。

目前国内外使用的主要目标识别方法有:
(1) 统计模式识别:统计模式识别方法就是把整个目标区域集合化,然后可以分割成若干互不相交的子集合,子集合从分类的角度来看是有某方面的共性的。

选定一个基本的性质集合,从而可以用它来描述目标的一些基本特性,
图1-1 统计模式识别模型
同一子集合的各个模式存在一定的差异,有些是由于噪声和采集设备的性质造成的,而有些却是模式本身性质而引起的随机变化。

第一个因素就如写一个字时纸张的选择、使用何种笔芯对字的影响;第二个因素表现为即使是自己写同一个字时,虽可能看起来极其相似,但也不可能是百分之百完全相同的。

因此当用特征向量来描述这些字在形状上的相似性时,这些特征向量所对应的特征空间中的点就不会相同,而是聚集在特征空间的某个区域空间内。

而此时此区域空间就能够用来表示该随机向量实现出的集合,图1-1 给出了统计模式识别的模型。

(2) 神经元网络的识别方法:神经网络(Neural Networks)的基本思路是神经元之间相互连接,一个神经元的输入同时也是其他神经元的输出,这就与大脑中的神经元高度相似,而人体神经元的这些特性被认为是人类防止损伤或者具有记忆力的来源。

它反映出大脑的基本功能和特性,是一个高度复杂的非线性学习系统。

神经元网络具有大规模的并行、分布式存储和处理、自组织、自适应和自学的能力,因此特别适合处理那些可能需要同时考虑多种原因和条件的、不够十分精确或者比较模糊的信息处理问题。

神经元网络能够不断的学习,并且归纳以及判断目标特
性,最后达到能够充分的逼近复杂目标特征的目的。

图1-2给出了神经元网络的识别模型。

图1-2 神经元网络的识别模型
由上面可以看到,前人已经对图像的识别做了很多的探索及其研究,但是每种方法都有自己的适用范围,因此在复杂背景中识别出二维码图案,明确所处环境,找到具体的适用方法尤为重要。

1.3 本课题研究内容
本论文是研究识别复杂背景中的二维条码图案,对图像进行预处理,识出图像特征“L”型,对识别出的图像进行校正。

(1)原始图像读入,将复杂背景中的DM码图像作为目标图像
(2)图象预处理,对于DM码的图像特征。

将图像转换为灰度图像,采用高斯滤波,otsu算法获得动态阈值对图像二值化,形态学操作,区域填充等方法,找出DM码区域并提取出。

(3)对提取出的DM码区域进行边缘检测,这里用的是sobel算子,因为经过它处理后直线会比较细。

有助于后边用Hough变换检测线段。

(4)用Hough变换可以检测图像中的所有线段,这里我们只需要检测出DM码区域的两条最长线段,因为这两条线段就是条码的特征图像所在的线段。

(5)根据检测出来的两条线段确定L型区域,详细计算倾斜角度。

对图像进行旋转校正,使它到达标准位置,然而经过旋转后,会出现黑色区域,因此再对黑色区域进行修正,使黑色区域变白。

系统框图如图1-3所示:
图1-3 系统的整体框图
2 图像的预处理
2.1 图像灰度化
将彩色图转化成为灰度图的过程称为图像的灰度化处理。

由采集设备采集到的图像为真彩图,真彩图的一个像素点有1600多万的颜色变化范围,因此需要更大存储空间存储,并且如果直接对真彩图处理时,处理过程中所花费的时间很长,而且处理速度很慢,因此真彩图的灰度化处理,是预处理过程中必不可少的步骤。

在真彩图中的每个像素点的颜色由R、G、B三个通道的值共同决定。

灰度图像是具有从黑到白从0到255级灰度色域等级的单色调图像。

在灰度图中每个像素用8位数据表示,故而它的每个像素点的取值范围是黑白间的256种灰度中的一种。

并且灰度图只有灰度等级,而没有颜色的变化。

在真彩图中如果令R、G、B 三个通道分量的值相等,那么此时该真彩图就表示灰度图。

常用的图像灰度化的方法有平均值法和加权平均法:
平均值法:用真彩图的R、G、B三个分量值求平均数,见等式(2-1)。

=++ (2-1)
f i j R i j G i j B i j
(,)((,)(,)(,))/3
加权平均法:根据人眼对三种原色的敏感度的不同,将三个分量以不同的权值进行加权平均,此时得到的就是比较合理的灰度图了,见等式(2-2)。

=++ (2-2)
(,)0.30(,)0.59(,)0.11(,)
f i j R i j G i j B i j
在Matlab的图像处理工具箱中,有RGB真彩图转换成灰度图的函数
rgb2gray(),用此函数也是基于等式2-2的。

图2-1,给出了三种灰度化方法产生的
灰度图像。

(a) 原图 (b) 加权平均法
(c) rgb2gray函数灰度化 (d) 平均值法
图2-1 上述几种方法产生的灰度图像
很显然,用平均值法得到的灰度图,不能满足要求,而用加权平均法和
rgb2gray()函数得到的灰度图效果很好,且几乎没差别。

2.2 图像滤波
2.2.1 图像滤波技术
因为在DM 码的采集的过程之中,由于采集设备本身特性的限制,而产生的比如高斯噪声,椒盐噪声,脉冲噪声等噪声,而这种噪声是可以通过图像的滤波技术使其干扰降到最低,常用的图像滤波技术有空域滤波和频域滤波。

空域滤波是借助模板对图像进行邻域操作。

所谓的模板,也称之为样板或者窗口,一般可以认为是一副l ×l (这里的l 通常为奇数,并且远小于图像的尺寸大
小)的小图像,它各个位置上的取值定义为系数值,系数值的大小由具体的功能来决定。

根据图像像素之间的联系从而可以划分成各式各样的模板操作,并来实现各式的功能。

模板运算的主要思想是把给某像素的值作为它本身的灰度值和其邻域像素灰度值的函数,这个函数可以使线性的也可以是非线性的,而具体的运算可以使卷积操作,也可以使排序操作等。

利用像素本身以及相邻像素的灰度关系来进行的增强操作,就称之为滤波。

空域滤波按功能分可分为平滑滤波器和锐化滤波器。

平滑滤波器主要是模糊和去除噪声,常见的平滑滤波器有高斯低通滤波器和中值滤波器。

而锐化滤波器主要是增强被模糊的细节边缘,常见的有Sobel 水平边缘增强滤波器。

频域滤波和空域滤波一样,其基础都是卷积定理。

频域滤波的基本步骤:计算需要增强图像的傅里叶变换,乘以一个滤波传递函数H(u,v),将得到的结果进行傅里叶反变换,得到g(x,y)。

针对DM 码产生噪声的原因,因此本文所用的是空域滤波中的平滑滤波,使噪声达到最小化。

2.2.2 高斯滤波
高斯滤波器是基于邻域加权平均法的一种线性平滑滤波器。

它是根据高斯分布来确定各模板的系数,也是把接近各模板中心的系数取得比周边的模块的系数大,这就相当于给邻域做了加权平均,加权平均的一般计算式为式(2-3)。

(2-3)
(,)(,)
(,)(,)(,)(,)s t N x y w s t f s t g x y w s t ∈∑=∑
例如一个5×5的高斯平均的模板如下:
14741416261641726412672734
162616414741⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦
在高斯滤波中,除了要对同一尺寸模板中的不同位置采用不同的系数之外,还可以选取不同尺寸的模板,最后对小尺寸的模板反复的使用,也可以得到大尺寸模板的效果。

如图2-2,一个3×3模板可以转化为两个1×1模板的卷积。

[]1211111242212116441211⎡⎤⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦
图2-2 3×3模板转化为1×1模板
需要注意的是模板越大,平滑的效果越明显,也可能使图像目标区域的边界变得模糊。

因此模板大小的选择很重要。

2.2.2 中值滤波
中值滤波法是非线性平滑滤波器。

它是通过模板的排序来实现的,设模板尺寸为N ,N=2r+1,其中r 为模板的半径,则中值滤波的输出为:
[,,...,,...]1g median f f f f j j r j r j j r =--++ (2-4)
上式中media 代表取它们的中值,也就是对模板覆盖的信号序列,按照取值的大小进行排序,最后取排序后处于中间位置的值。

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

Matlab 图像处理工具箱的medfilt2来实现二维中值滤波 B =medfilt2(A,[m,n]),其中[m,n]为模板大小,默认3 ×3。

如果模板选择过大,那么图像的边缘会变得很模糊,如果选择过小又使得噪声不能去除。

综上,因为采集设备采集到的图像上的噪声主要以椒盐噪声和高斯噪声为
主,并且一般采集到图像的尺寸选用3X3模板的高斯滤波和中值滤波的可以很好的消除这种噪声,对DM 码很适用。

2.3 二值化阈值选取
图像二值化就是把讲图像上点的灰度值设为0(黑)或255(白),是整个图像具有明显的黑白效果,以便于后期操作。

而在图像二值化中阈值选取很重要,常用的阈值法有灰度直方图的峰谷法、最小误差法、最大类间方差法、最大熵自动阈值法等。


2.3.1 直方图的峰谷法
图像的灰度级范围为0,1,…M -1,设灰度级i 的象素数为i n ,则一幅图像的总象素N 为:
(2-7)
灰度级i 出现的概率定义为:
(2-8)
式(2-8)反映一幅图像上灰度分布的统计特征,是用像素的灰度作为分割方法的基础。

双峰之间的低谷所对应的灰度值作为阈值,如图2-3所示。

1
0M i i N n -==∑/i i P n N =
图2-3
但是该方法有一定的局限性,它不适合直方图中双峰的差别很大或者是双峰之间的低谷比较宽广而平坦的图像,以及单峰直方图的情况。

为了解决这个问题提出一种改进方法。

设一幅图像只由目标和背景组成,并且知道它的灰度值分布概率密度函数为P1(Z)和P2(Z),并且假设目标的像素占整个图像像素比值为θ,所以该图像总的灰度值概率密度函数P(Z)可表示为:
12
()()(1)()
P Z P Z P Z
θθ
=+- (2-9)
假设这里的阈值为Z,并假设图像由亮背景和暗目标组成组成,即灰度值小于Z的取为目标物,大于Z的取为背景,如图2-5所示
图2-5
如选定
t
Z为最终确定的阈值,则将背景像素认错为目标像素的概率是:
(2-10)
将目标像素认错为背景象素的概率为:
(2-11)
所以总的错误率E(Z)为:
(2-12) 最小阈值就是当E(Zt)取最小值时变量Zt的值。

1
2()()
t
Z T
E Z P Z dZ

=⎰
2
1()()
T
t
Z
E Z P Z dZ

=⎰
()(1)1()
t T t
E Z E Z E Z
θθ
=-+2()
2.3.2 一维最大熵法
图像的熵是一种基于图像特征的统计形式,它反映了图像中平均信息量的多少。

而图像的一维熵表征了图像中灰度级分布的聚集特征中信息量的大小。

在信息论里,熵的定义为:
(2-13)
因此灰度图的一元灰度熵也可以用上式表示,其中P(x)为图像中灰度值为x的像素数占总像素数的比例。

这里要一维熵最大,就是要确定一个阈值,用此阈值分割的图像的两部分灰度统计的信息量达到最大。

根据式(2-7)、(2-8)可以计算出图像像素的总数,以及像素级i出现的概率
图像灰度直方图如图2-6所示
图2-6 图像灰度直方图
在目标区概率分布满足:
t
i
o P
P
p=,其中i =1,2…t
在背景区概率分布满足:,其中i =t+ 1,t+2…L
而Pt为:
因此目标和背景区的熵为
目标区:
(2-14)
背景区:
(2-15)
图像的总熵为:
(2-16) ()()()()
t
t
t
t
t
t
B
O P
H
H
P
H
P
P
t
H
t
H
t
H
-
-
+
+
-
=
+
=
1
1
ln
()lg()
H p x p x dx
+∞
-∞
=⎰
)
1(
t
i
b P
P
p-
=

=
=
t
i
i
t
P
P
1

-
=
t
i
o
P
P
H
1
1
lg

-
=
t
i
B
P
P
H
2
2
lg
在式(2-16)中,使阈值H(t)取最大值的t 就是所要求的阈值。

2.3.3 Otsu 法
Otsu 法基于最小二乘法的原理,也成为最大类间方差法,是将某一处的阈值分割成两组,当被分割的两组间方差最大时,此时便求出了阈值T 。

图像的灰度级范围为0,1,…M -1,设灰度级i 的象素数为i n ,根据式(2-7)、(2-8)可以计算出图像像素的总数,以及像素级i 出现的概率。

用灰度级阈值t 将其分成两类0C 和1C 则: 对于0C 类有:
概率:0()t
i i
w t p =∑ (2-17)
均值:001
()/()t
i i u t ip w t ==∑ (2-18)
对于1C 类有:
概率:11()t
i i t
w t p =+=∑ (2-19)
均值:111
()/()m
i i t u t ip w t =+=∑
(2-20)
由以上可以求出0C 和1C 类的方差:
对于0C 类:2
20001
()[()]/()l i i t i u t p w t σ==-∑ (2-21)
对于1C 类:2
2
1111
()[()]/()m i i t t i u t p w t σ=+=-∑
(2-22) 因此图像灰度的均值为:
0011()()()()u w t u t w t u t =+ (2-23)
故而0C 和1C 的两类间方差为:
220101()()()[()()]t w t w t u t u t σ=- (2-
24)
使式子(2-24)取最大值的t就是要求的阈值。

如图2-7给出了
C和
1
C类的变化范围。

图2-7
C和
1
C类的变化
2.3.4 阈值算法的选取
以上的算法都是求全局阈值,因为这里我们处理的图像,不考虑光学的不均匀,以及畸变等,所以使用全局阈值法能够很好的进行二值化。

直方图双峰法,处理速度比较快,但是它对图像的特性要求较高,要求图像的直方图有明显的双峰结构,而我们所使用的复杂背景的图像它的直方图特性是未知的。

所以直方图双峰法有很大的局限性
一维最大熵值法,对图像的直方图特性没有什么要求,可是在图像的二值化处理中,它可能会丢掉目标图像的一些边界点信息。

Otsu法也称为最大类间方差法,是最经典的全局阈值自适应算法,而且该算法的处理速度很快,能很好的满足要求。

2.4 数学形态学操作
数学形态学(Mathematical morphology)是以目标的空间形态为基础,对图像分析的一种数学方法。

它能使图像数据简化,使其的形状特性不发生变化,并消除不相干的结构。

基本运算膨胀、腐蚀、开操作、闭操作。

2.4.1 腐蚀
腐蚀是一种消除边界点,使边界向内部收缩的过程。

可以用来消除小且无意义的物体。

B对A进行腐蚀记作,定义为:
B对A腐蚀的过程如图2-5所示:
B
AΘ{}A
B
x
B
A
x

=
Θ)
(|
图2-5 B 对A 腐蚀
腐蚀运算可以简化物体的结构,那些只有一个像素宽的物体或物体的部分将被去掉,这样就把比较复杂的图像,分解成了几个简单的部分。

Matlab 中IM2= imerode (IM1,SE)是具体的二值图像或灰度图像的腐蚀运算,其中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为膨胀后图像
通过数学形态学的腐蚀以及膨胀操作,就可以大致确定条码的位置范围。

其中面积最大的区域就是条码的区域,下面根据面积最大的区域来提取最大连通分量。

B A ⊕{}
Φ≠=⊕A B x B A x )ˆ(|B ˆ
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对A闭操作可以表示为:
B对A进行开操作的含义是的边界通过B在A的边界外转动时,B中的点所能达到的A的边界的最远点,图2-10表示了B对A进行开操作的过程。

图2-10
B
B
A
B
A⊕
Θ
=)
(
B
A
B
B
A
B


=
•)
(
B
A•。

相关文档
最新文档