数字图像处理-图像的腐蚀要点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1设计目的
1掌握图像腐蚀对图像的提取与识别的重要性,提高分析问题解决问题的能力,较深入地理解数字图像处理的基本概念、基础理论以及解决问题的基本思想方法
2熟悉数字图像处理的基本概念、原理、和方法,锻炼初步综合利用所学知识深入研究有关信息领域问题的能力,并未以后在此方向上的深入研究奠定基础。
3熟悉掌握一门计算机语言可以进行数字图像的应用与处理设计。
1熟悉掌握matlab仿真的软件的应用平台及使用方法。2理解图像腐蚀的原理。
3设计合理的程序,能实现图像的腐蚀。
3.1关于图像腐蚀
形态学运算只针对二值图像(二进制图像),并依据数学形态学(Mathermatical Morphogy)集合论方法发展起来的图像处理方法,起源于岩相对岩石结构的定量描述工作,在数字图像处理和机器视觉领域中得到了广泛的应用,形成了一种独特的数字图像分析方法和理论。数学形态学是图像处理和模式识领域的新方法,其基本思想是:用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。优势有以下几点:有效滤除噪声,保留图像中原有信息,算法易于用并行处理方法有效实现(包括硬件实现),基于数学形态学的边缘信息提取处理优于基于微分运算的边缘提取算法,提取的边缘比较平滑,提取的图像骨架也比较连续,断点少。
二值图像中的一种主要处理是对所提取的目标图形进行形态分析。而形态处理中最基本的是腐蚀与膨胀。腐蚀处理的作用是将目标图形收缩。运算效果取决于结构元素大小内容以及逻辑运算性质。
结构元素是指具有某种确定形状的基本结构元素,例如,一定大小的矩形,圆或者菱形等。
腐蚀处理可以表示成用结构元素对图像进行探测,找出图像中可以放下该结构元素的区域。腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的目标物。如果两目标物间有细小的连通,可以选取足够大的结构元素,将细小连通腐蚀掉[1]。
3.2腐蚀的算法
用3x3的结构元素,扫描图像的每一个像素;
用结构元素与其覆盖的二值图像做“与”操作;
如果都为1,结果图像的该像素为1。否则为0。
结果:使二值图像减小一圈。
把结构元素B平移a后得到Ba,若Ba包含于X,我们记下这个a点,所有满足上述条件的a点组成的集合称做X被B腐蚀(Erosion)的结果。用公式表示为:E(X)={a| Ba X}=X B,如图1.1所示。
图3.1腐蚀的示意图
图1.1中X是被处理的对象,B是结构元素。不难知道,对于任意一个在阴影部分的点a,Ba 包含于X,所以X被B腐蚀的结果就是那个阴影部分。阴影部分在X的范围之内,且比X小,就象X被剥掉了一层似的,这就是为什么叫腐蚀的原因。
值得注意的是,上面的B是对称的,即B的对称集Bv=B,所以X被B腐蚀的结果和X被Bv腐蚀的结果是一样的。如果B不是对称的,让我们看看图6.9,就会发现X被B腐蚀的结果和X被Bv腐蚀的结果不同。
图3.2结构元素非对称时,腐蚀的结果不同
图1.1和图1.2都是示意图,让我们来看看实际上是怎样进行腐蚀运算的。
在图1.3中,左边是被处理的图象X(二值图象,我们针对的是黑点),中间是结构元素B,那个标有origin的点是中心点,即当前处理元素的位置,我们在
介绍模板操作时也有过类似的概念。腐蚀的方法是,拿B的中心点和X上的点一个一个地对比,如果B上的所有点都在X的范围内,则该点保留,否则将该点去掉;右边是腐蚀后的结果。可以看出,它仍在原来X的范围内,且比X包含的点要少,就象X被腐蚀掉了一层。
图3.3 腐蚀运算
图3.4原图
图3.5腐蚀后的结果图
图1.4为原图,图1.5为腐蚀后的结果图,能够很明显地看出腐蚀的效果。
下面的这段程序,实现了上述的腐蚀运算,针对的都是黑色点。参数中有一个BOOL变量,为真时,表示在水平方向进行腐蚀运算,即结构元素B为[111];否则在垂直方向上进行腐蚀运算,即结构元素B为T
[111][2]。
创建结构元素:strel函数来创建任意大小和形状的STREL 对象,支持如线形line、菱形diamond、圆盘形disk、球形ball等许多种常用的形状。(本次实验做对象为菱形diamond、球形ball、圆盘形disk的strel函数。)
3.3关于图像腐蚀函数
可以使用imerode函数进行图像腐蚀。imerode函数需要两个基本输入参数:待处理的输入图像以及结构元素对象。此外,imerode函数还可以接受3个可选参数:PADOPT(padopt) ——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。M——指定原始图像的行数。
以下程序示例说明了如何对某一副具体图像进行腐蚀操作,腐蚀前后的效果对比如图末[3]。
步骤1,读取图像cameraman.tif (该图像是Matlab当前目录下自带的图片)>> BW1=imread('cameraman.tif');
步骤2,创建一个任意形状的结构元素对象
>> SE=strel('arbitrary',eye(5));
步骤3,以图像BW1和结构元素SE为参数调用imerode函数进行腐蚀操作。
>> BW2=imerode(BW1,SE);
步骤4,显示操作结果
>> imshow(BW1)
>> figure,imshow(BW2)
图3.6系统原图像左与腐蚀后图像右对比
4 具体设计内容
4.1不同的结构元素的腐蚀
为了研究图像在不同图形元素下腐蚀的不同结果,我们做了一下程序代码对图像进行腐蚀,将图像2经过菱形,球形,圆盘形等元素的腐蚀显示原图像及腐蚀后的各图像的程序如下[4]:
I=imread('F:\2.jpg');
SE1=strel('diamond',3);
IM1=imerode(I,SE1);
SE2=strel('ball',3,4,8);
IM2=imerode(I,SE2);
SE3=strel('disk',6);
IM3=imerode(I,SE3);
subplot(2,2,1);
imshow(I);
title('原始图像');
subplot(2,2,2);
imshow(IM2);
title('菱形腐蚀后图像');
subplot(2,2,3);
imshow(IM2);
title('球形腐蚀后图像');
subplot(2,2,4);
imshow(IM3);
title('圆盘形腐蚀后图像');