当前位置:文档之家› matlab数字图像处理-膨胀和腐蚀

matlab数字图像处理-膨胀和腐蚀

matlab数字图像处理-膨胀和腐蚀
matlab数字图像处理-膨胀和腐蚀

基于Matlab的腐蚀和膨胀的边缘检测

一、实验目的:

掌握运用Matlab软件对灰度与二值图像的膨胀与腐蚀的处理方法。

二、实验环境(软件条件):

Windws2000/XP MATLAB 7.x

三、实验内容:

1、图像膨胀的Matlab实现

①实验原理:

膨胀:给图像中的对象边界添加像素。

在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1。

可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。此外,imdilate 还可以接受两个可选参数:PADOPT(padopt) ——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。

②实验步骤:

A、首先创建一个包含矩形对象的二值图像矩阵。

R=zeros(9,10);

R(4:6,4:7) =1

R =

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 1 1 1 1 0 0 0

0 0 0 1 1 1 1 0 0 0

0 0 0 1 1 1 1 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

B、使用一个3×3的正方形结构元素对象对创建的图像进行膨胀。

C=strel('square',3)

C =

Flat STREL object containing 9 neighbors. Neighborhood:

1 1 1

1 1 1

1 1 1

C、将图像R和结构元素C传递给imdilate函数。R1=imdilate(R,C)

R1 =

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 1 1 1 1 1 1 0 0

0 0 1 1 1 1 1 1 0 0

0 0 1 1 1 1 1 1 0 0

0 0 1 1 1 1 1 1 0 0

0 0 1 1 1 1 1 1 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

D、显示结果:

imshow(R,'notruesize')

imshow(R1,'notruesize')

③实验结果:

膨胀前后效果图:

2、图像腐蚀的Matlab实现

①实验原理:

腐蚀:删除对象边界某些像素。

在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。在腐蚀操作中,输出像素值是输入图像相应像素邻域内所有像素的最小值。在二进制图像中,如果任何一个像素值为0,那么对应的输出像素值为0。

可以使用imerode函数进行图像腐蚀。imerode函数需要两个基本输入参数:待处理的输入图像以及结构元素对象。此外,imerode函数还可以接受3个可选参数:PADOPT(padopt) ——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。M——指定原始图像的行数。

②实验内容及步骤:

A、读取图像cameraman.tif (该图像是Matlab当前目录下自带的图片)

R=imread('cameraman.tif');

B、创建一个任意形状的结构元素对象

C=strel('arbitrary',eye(5));

C、以图像R和结构元素C为参数调用imerode函数进行腐蚀操作。

R1=imerode(R,C);

D、显示操作结果

imshow(R);

figure,imshow(C);

③实验结果:

图像cameraman.tif 腐蚀前后的效果对比:

3、膨胀和腐蚀联合操作

①实验内容及步骤:

A、创建结构元素:

clear;close all

C= strel('rectangle',[40 30]);

%结构元素必须具有适当的大小,既可以删电流线又可以删除矩形.

B、使用结构元素腐蚀图像:

%将会删除所有直线,但也会缩减矩形

R=imread('circbw.tif');

R1=imerode(R,C);

imshow(R1);

figure,imshow(R);

C、恢复矩形为原有大小,使用相同的结构元素对腐蚀过的图像进行膨胀.

R2=imdilate(R1,C);

figure,imshow(R2);

②实验结果:

最终效果如下图:

原始图像腐蚀后的图像膨胀后的图像

4、边缘检测

①实验原理:

对于一副灰度二进制图像,如果图像像素值为1,则该像素的状态为ON,如果其像素值为0,则该像素的状态为OFF。在一副图像中,如果图像某个像素满足以下两个条件:

1.该像素状态为ON;

2.该像素邻域中有一个或多个像素状态为OFF。

则认为该像素为边缘像素。

Matlab中提供了专门的函数bwperim,可以用于判断一副二进制图像中的哪些像素为边缘像素。

②实验内容及步骤:

以下程序代码示例就是利用bwperim函数,对图像circbw.tif进行边缘检测,其边缘像素检测效果如尾图。

clear;close all

R=imread('circbw.tif');

R1=bwperim(R);

imshow(R);

figure,imshow(R1);

②实验结果:

心得体会:

本次实验利用形态学运算—腐蚀和膨胀对图像进行了处理。数学形态学的基本思想是:用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。它的优点有:有效滤除噪声、保留图像中原有信息、算法易于用并行处理方法有效实现等等。

总的来说,在此次实验中遇到了较多问题,经过对相关知识的复习以及对相关资料的查询,才逐个地解决了。在今后的实验课中要有充分的准备与预习,不懂的问题要提前查资料,这样在实验中才会胸有成竹,才不会手忙脚乱。

北航数图实验报告四图像腐蚀和膨胀

北航数图实验报告四图像腐蚀和膨 胀 部门: xxx 时间: xxx 整理范文,仅供参考,可下载自行编辑

北京航空航天大学 数字图像处理实验报告 实验四:图像分割处理 学院 专业方向 班级 学号 学生姓名 指导教师 实验四图像分割处理实验 1.实验目的 <1)了解图像分割的基本原理,并利用图像分割算法进行图像分割处理; <2)掌握数学形态学的基本运算。 2.实验内容 <1)利用类间方差阈值算法实现图像的分割处理; <2)利用形态学处理进行处理结果修正。 3. 实验要求

<1)实验用图: <2)对输入图像进行平滑处理,以减小噪声对分割处理的影响; <3)利用类间方差阈值算法对滤波处理后图像进行分割处理,获取分割图像; <4)利用数学形态学中的腐蚀和膨胀运算处理,剔除分割处理结果中的一些细小的残余误分割点,在进行腐蚀和膨胀运算时可采用半径为r的圆形结构元素,注意比较选取不同r值时的处理结果。b5E2RGbCAP 四、实验代码 function STshiyan4_OpeningFcn(hObject, eventdata, handles, varargin>p1EanqFDPw I=imread('4.bmp'>。 I=rgb2gray(I>。 subplot(3,3,1>。

imshow(I>。 title('原图像'>。 IM=medfilt2(I>。%中值滤波 subplot(3,3,2>。 imshow(IM>。 title('中值滤波后图像'>。 function pushbutton1_Callback(hObject, eventdata, handles>DXDiTa9E3d I1=imread('4.bmp'>。 I1=rgb2gray(I1>。 T=Otsu(I1>。 IM1=medfilt2(I1>。 s=size(IM1>。 for m=1:s(1> for n=1:s(2> if IM1(m,n>>=T IM1(m,n>=255。 else IM1(m,n>=0。 end end end

MATLAB膨胀腐蚀(开,闭运算)源代码

clear,clc; h=imread('ceshi2.bmp'); i=im2bw(h); i1i=187; i1j=192; for ai=181:193 for aj=186:198 if(sqrt(double(ai-i1i)^2+double(aj-i1j)^2)<=5) i(ai,aj)=1;%定义圆形结构元素 end end end figure,imshow(i); i1=i; for i1i=6:205%用B腐蚀A for i1j=6:205 flag=0; if(i1i>=181&&i1i<=193&&i1j>=186&&i1j<=198) continue; else if(i(i1i,i1j)==1) for ai=i1i-5:i1i+5 for aj=i1j-5:i1j+5 if(i1(ai,aj)==0&&sqrt(double((ai-i1i)^2+(aj-i1j)^2))<=5) i(i1i,i1j)=0; flag=1; break; end end if(flag==1) break; end end end end end end figure,imshow(i); %在上面C的图像上用B进行膨胀 i2=i; for i1i=6:205%用B膨胀C for i1j=6:205 flag=0; if(i1i>=175&&i1i<=199&&i1j>=180&&i1j<=204)

continue; else for ai=i1i-5:i1i+5 for aj=i1j-5:i1j+5 if(i2(ai,aj)==1&&sqrt(double((ai-i1i)^2+(aj-i1j)^2))<=5) i(i1i,i1j)=1; flag=1; break; end end if(flag==1) break; end end end end end figure,imshow(i); %在上面D的图像上用B进行膨胀 i2=i; for i1i=6:205%用B膨胀D for i1j=6:205 flag=0; if(i1i>=175&&i1i<=199&&i1j>=180&&i1j<=204) continue; else for ai=i1i-5:i1i+5 for aj=i1j-5:i1j+5 if(i2(ai,aj)==1&&sqrt(double((ai-i1i)^2+(aj-i1j)^2))<=5) i(i1i,i1j)=1; flag=1; break; end end if(flag==1) break; end end end end end figure,imshow(i); %在上面E的图像上用B进行腐蚀 i1=i;

数字图像处理-图像的腐蚀要点

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所示。

图像的腐蚀和膨胀

图像的腐蚀和膨胀 研究背景和意义 依据数学形态学集合论方法发展起来的图像处理方法,在数字图像处理和机器视觉领域中得到了广泛的应用,形成了一种独特的数字图像分析和理论。数学形态学是图像处理和模式识别领域的新方法,其基本的思想是:用具有一定形态的结构元素去度量和提取图像中的对应形状,已达到图像分析和识别的目的。 优势有一下几点:有效滤除噪声,保留图像中原有信息,算法很容易用并行处理方法有效实现,基于数学形态学的边缘信息提取处理优于基于微分运算的边缘提取算法,提取的边缘比较平滑,提取的图像骨架也比较连续,断点很少。 二.原理 特殊领域运算形式——结构元素,在每个像素位置上与二值图像对应的区域进行特定的逻辑运算。运算结果是输出图像的相应像素。运算效果取决于结构元素大小、内容以及逻辑运算性质。 结构元素:膨胀和腐蚀操作的最基本组成部分,用于测试输出图像,通常要比待处理的图像小的多。二维平面结构元素由一个数值为0或1的矩阵组成。结构元素的原点(锚点)指定了图像中需要处理的像素范围,结构元素中数值为1的点决定结构元素的领域像素在进行膨胀或腐蚀操作时是否需要参与计算。 常见的形态学运算有腐蚀和膨胀两种: 腐蚀:删除对象边缘某些像素。

膨胀:给图像中的对象边缘添加像素。 三.算法及效果图 膨胀算法:用3X3的结构元素扫描图像的每一个像素,用结构元素与其覆盖的二值图像做“与”操作,如果都为0,结果图像的该像素点为0,否则为1。膨胀算法的效果是使二值图像扩大一圈。 腐蚀的算法:用3X3的结构元素,扫描图像的每一个像素点,用结构元素与其覆盖的二值图像做“与”操作,如果结果都为1,结果图像的该像素点为1,否则为0。 膨胀算法的结果:是二值图像减少一圈。 四.组合使用效果 先腐蚀后膨胀的过程:利用它可以消除小物体,在纤细点处分离物体,平滑较大物体边界,但同时并不会明显改变原来物体的面积。 先膨胀后腐蚀的过程:利用它可以填充物体内细小空洞,连接临近物体、平滑其边界,但同时并不会明显改变原来物体的面积。 通常由于噪声的影响,图像在阈值化后所得到的边界通常都很不平滑,物体区域具有一些噪声孔,而背景区域上散布着一些小的噪声物体,连续的开和闭运算可以有效的改善这种情况。而有时,我们需要经过多次腐蚀,然后再加上相同次数的膨胀,才能产生比较好的处理效果。可见图像的腐蚀与膨胀相结合有时可以使图像有较理想的处理效果。 图像处理分为多种,对于不同的图像腐蚀和膨胀的定义不同。 1. 形态学图像处理是在图像中移动一个结构元素,然后将结构元素

C 图像的膨胀和腐蚀

C++图像的膨胀和腐蚀 二值图像是一种简单的图像格式,它只有两个灰度级,即"0"表示黑色的像素点,"255"表示白色的像素点,至于如何从一幅普通的图像获得二值图像,请参考我近期在天极网上发表的《Visual C++编程实现图像的分割》一文。二值图像处理在图像处理领域占据很重要的位置,在具体的图像处理应用系统中,往往需要对于获得的二值图像再进一步进行处理,以有利于后期的识别工作。二值图像处理运算是从数学形态学下的集合论方法发展起来的,尽管它的基本运算很简单,但是却可以产生复杂的效果。常用的二值图像处理操作有许多方法,如腐蚀、膨胀、细化、开运算和闭运算等等。本文对这些内容作些研究探讨, 希望对爱好图像处理的朋友有所帮助。一、腐蚀和膨胀形态学是一门新兴科学,它的用途主要是获取物体拓扑和结果信息,它通过物体和结构元素相互作用的某些运算,得到物体更本质的形态。它在图像处理中的应用主要是: 1.利用形态学的基本运算,对图像进行观察和处理,从而达到改善图像质量的目的; 2.描述和定义图像的各种几何参数和特征,如面积,周长,连通度,颗粒度,骨架和方向性。限于篇幅,我们只介绍简单二值图像的形态学运算,对于灰度图像的形态学运算,有兴趣的读者可以看有关的参考书。

二值图像基本的形态学运算是腐蚀和膨胀,简单的腐蚀是消除物体的所有边界点的一种过程,其结果是使剩下的物体沿其周边比原物体小一个像素的面积。如果物体是圆的,它的直径在每次腐蚀后将减少两个像素,如果物体在某一点处任意方向上连通的像素小于三个,那么该物体经过一次腐蚀后将在该点处分裂为二个物体。简单的膨胀运算是将与某物体接触的所有背景点合并到该物体中的过程。过程的结果是使物体的面积增大了相应数量的点,如果物体是圆的,它的直径在每次膨胀后将增大两个像素。如果两个物体在某一点的任意方向相隔少于三个像素,它们将在该点连通起来。 下面给出具体的实现腐蚀和膨胀的函数代码: ////////////////////////////////二值图像腐蚀操作函数 BOOL ImageErosion(BYTE *pData,int Width,int Height) {//pData为图像数据的指针,Width和Height为图像的宽和高; BYTE* pData1; int m,n,i,j,sum,k,sum1;

腐蚀膨胀算法详细解释

形态学运算中腐蚀,膨胀,开运算和闭运算(针对二值图而言) 6.1 腐蚀 腐蚀是一种消除边界点,使边界向内部收缩的过程。可以用来消除小且无意义的物体。 腐蚀的算法: 用3x3的结构元素,扫描图像的每一个像素 用结构元素与其覆盖的二值图像做“与”操作 如果都为1,结果图像的该像素为1。否则为0。 结果:使二值图像减小一圈 把结构元素B平移a后得到Ba,若Ba包含于X,我们记下这个a点,所有满足上述条件的 a点组成的集合称做X被B腐蚀(Erosion)的结果。用公式表示为:E(X)={a| Ba X}=X B,如图6.8所示。 图6.8 腐蚀的示意图 图6.8中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腐蚀的结果不同。

图6.9 结构元素非对称时,腐蚀的结果不同 图6.8和图6.9都是示意图,让我们来看看实际上是怎样进行腐蚀运算的。 在图6.10中,左边是被处理的图象X(二值图象,我们针对的是黑点),中间是结构元素B,那个标有origin的点是中心点,即当前处理元素的位置,我们在介绍模板操作时也有过类似的概念。腐蚀的方法是,拿B的中心点和X上的点一个一个地对比,如果B上的所有点都在X的范围内,则该点保留,否则将该点去掉;右边是腐蚀后的结果。可以看出,它仍在原来X的范围内,且比X包含的点要少,就象X被腐蚀掉了一层。 图6.10 腐蚀运算 图6.11为原图,图6.12为腐蚀后的结果图,能够很明显地看出腐蚀的效果。 图6.11 原图

MATLAB数字图像的腐蚀、填充、细化与粗化

《数字图像处理》 实验报告 姓名学号专业电子科学与工程学院实验5 一、实验目的 本次实验的处理对象是二值图像,关于二值图像的处理运算主要包括腐蚀和膨胀。它们是其他处理过程的主要运算环节。开闭操作通过腐蚀和膨胀的不同顺序组合,能够使图像平滑,开闭操作再组合能够成噪声滤波器。形态学中的击中击不中变换也应用了腐蚀的运算,用于判断图像中能否找到目标结构,这在图像细化中也得到了应用。 本次实验主要实现: 1.图像的边缘提取; 2.在边缘提取的基础上实现区域填充; 3.在区域填充的基础上实现图像细化; 4.在图像细化的基础上实现图像粗化。 在Matlab软件的自带函数库中其实本身就包含有以上处理过程的函数,为了深入理解每种处理过程的原理,本次实验所有运算都自行编写实现。 二、核心代码及运行后截图 主函数: %%读取图像 clear;clc; I=imread('onepiece.jpg'); I=im2bw(I);%转换为二值图像 [m,n]=size(I); %%边界提取 f=im2bw([0,1,0;1,1,1;0,1,0]);%腐蚀用的结构元素 F=fs(I,f); BW=im2bw(I-F);%用原图减去腐蚀获得边缘 figure;imshow(I);title('原图'); figure;imshow(F);title('腐蚀图像'); figure;imshow(BW);title('边界');

在上面的运行效果图上看来,由于原图选择的原因,周围一圈白线有一定宽度但不足够粗,大概只有2~3个像素宽度而腐蚀用元素大小为3×3,这导致腐蚀后图像留下的白线看起来残缺不全,用原图减去腐蚀后得到的边缘图像也在白线处有“粘在一块”的现象。只要使用更高一些分辨率的图片即可避免这样的情况。但出于后续试验的运行速度考虑,本实验就使用此图(300×300)。观察图像其他地方,有足够的像素宽度被腐蚀,由此提取的边缘也很清晰。 %%区域填充 I1=fillbw(BW,40,40);%fillbw函数实现指定坐标填充边缘内部,详见主函数后的各子函数 I1=I1|fillbw(BW,40,260);%为避免不必要的计算量,每次填充迭代次数为70 I1=I1|fillbw(BW,100,150);%逐次在图像中选择需填充区域中的起始点以完成填充 I1=I1|fillbw(BW,100,160); I1=I1|fillbw(BW,136,86); I1=I1|fillbw(BW,132,212); I1=I1|fillbw(BW,147,120); I1=I1|fillbw(BW,157,214); I1=I1|fillbw(BW,210,171); I1=I1|fillbw(BW,206,109); I1=I1|fillbw(BW,233,129); I1=I1|fillbw(BW,234,140); I1=I1|fillbw(BW,237,153); I1=I1|fillbw(BW,234,167); I1=I1|fillbw(BW,231,178); I1=I1|fillbw(BW,248,125); I1=I1|fillbw(BW,252,142); I1=I1|fillbw(BW,252,162);

第6章 腐蚀,膨胀,细化算法

第6章腐蚀,膨胀,细化算法 这一章的内容我认为是最有趣的。还记得前言中那个抽取骨架的例子吗?现在我们就来看看它是如何实现的。 今天所讲的内容属于一门新兴的学科:数学形态学(Mathematical Morphology)。说起来很有意思,它是法国和德国的科学家在研究岩石结构时建立的一门学科。形态学的用途主要是获取物体拓扑和结构信息,它通过物体和结构元素相互作用的某些运算,得到物体更本质的形态。在图象处理中的应用主要是:(1)利用形态学的基本运算,对图象进行观察和处理,从而达到改善图象质量的目的;(2)描述和定义图象的各种几何参数和特征,如面积、周长、连通度、颗粒度、骨架和方向性等。 限于篇幅,我们只介绍二值图象的形态学运算,对于灰度图象的形态学运算,有兴趣的读者可以阅读有关的参考书。在程序中,为了处理的方便,还是采用256级灰度图,不过只用到了调色板中的0和255两项。 先来定义一些基本符号和关系。 1.元素 设有一幅图象X,若点a在X的区域以内,则称a为X的元素,记作a∈X,如图6.1所示。 2.B包含于X 设有两幅图象B,X。对于B中所有的元素ai,都有ai∈X,则称B包含于(included in)X,记作B X,如图6.2所示。 3.B击中X 设有两幅图象B,X。若存在这样一个点,它即是B的元素,又是X的元素,则称B击中(hit)X,记作B↑X,如图6.3所示。 4.B不击中X 设有两幅图象B,X。若不存在任何一个点,它即是B的元素,又是X的元素,即B和X的交集是空,则称B不击中(miss)X,记作B∩X=Ф;其中∩是集合运算相交的符号,Ф表示空集。如图6.4所示。 图6.1 元素 图6.2 包含

matlab数字图像处理膨胀和腐蚀.doc

基于Matlab的腐蚀和膨胀的边缘检测 一、实验目的: 掌握运用Matlab软件对灰度与二值图像的膨胀与腐蚀的处理方法。 二、实验环境(软件条件): Windws2000/XP MATLAB 7.x 三、实验内容: 1、图像膨胀的Matlab实现 ①实验原理: 膨胀:给图像中的对象边界添加像素。 在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1。 可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。此外,imdilate 还可以接受两个可选参数:PADOPT(padopt) ——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。 ②实验步骤: A、首先创建一个包含矩形对象的二值图像矩阵。 R=zeros(9,10); R(4:6,4:7) =1 R = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B、使用一个3×3的正方形结构元素对象对创建的图像进行膨胀。

腐蚀、膨胀、开运算、闭运算(特制材料)

1、实验目的 学习常见的数学形态学运算基本方法,了解腐蚀、膨胀、开运算、闭运算取得的效果,培养处理实际图像的能力,并为课堂教学提供配套的实践机会。 2、实验要求 利用MatLab工具箱中关于数学形态学运算的函数,计算本指导书中指定二值图像进行处理。 3、实验设备与软件 1.LC-PC计算机系统 2.MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) 3.实验所需要的图片 4. 4、实验内容与步骤 1.调入并显示图像Plane 2.jpg; 2.选取合适的阈值,得到二值化图像Plane2-2.jpg; 3.设置结构元素; 4.对得到的二值图像Plane2-2.jpg进行腐蚀运算; 5.对得到的二值图像Plane2-2.jpg进行膨胀运算; 6.对得到的二值图像Plane2-2.jpg进行开运算; 7.对得到的二值图像Plane2-2.jpg进行闭运算; 8.将两种处理方法的结果作比较; 5、实验过程及结果 程序代码: I=imread('1.jpg');%读入图像 level = graythresh(I); %得到合适的阈值 bw = im2bw(I,level); %二值化 SE = strel('square',3); %设置膨胀结构元素 BW1 = imdilate(bw,SE); %膨胀

SE1 = strel('arbitrary',eye(5)); %设置腐蚀结构元素BW2 = imerode(bw,SE1); %腐蚀 BW3 = bwmorph(bw, 'open'); %开运算BW4 = bwmorph(bw, 'close'); %闭运算imshow(I) figure,imshow(bw);title('原图'); figure,imshow(BW1);title('膨胀'); figure,imshow(BW2);title('腐蚀'); figure,imshow(BW3);title('开运算'); figure,imshow(BW4);title('闭运算');

数字图像处理腐蚀与膨胀小程序

%%%%%%%%%%%%%%%%下面为用于处理的样本‘圆’%%%%%%%%%%%%%%%%%%%%%%%%% R=8;%%半径R S=zeros(2*R); for x1=-R:R-1; for y1=-R:R-1; if round(sqrt(x1^2+y1^2))<=R%%圆心在原点的圆的表达函数 %%对圆心在原点的圆进行平移,使x,y都为非负数 x=R+x1+1; y=R+y1+1; S(x,y)=1; end end end figure(1),imshow(S); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%下面为要处理的图形%%%%%%%%%%%%%%%%%%%%%%%%% W=256;L=512; %%定义边界 X=zeros(W,L); for i=1:128 for j=1:256 if i<=15|i>=114 if j<103|j>153 X(i+W/4,j+L/4)=1; end else if (i>15&i<=56)|(i>=72&i<114) if (j>50&j<103)|j>153 X(i+W/4,j+L/4)=1; end else if i>56&i<72 if j>50&j<206 X(i+W/4,j+L/4)=1; end end end end end end figure(2),imshow(X); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%下面用S对X进行腐蚀操

Matlab基于腐蚀和膨胀的边缘检测

Matlab基于腐蚀和膨胀的边缘检测 文/天神 一.课题背景: 形态学运算只针对二值图像(二进制图像),并依据数学形态学(Mathermatical Morphogy)集合论方法发展起来的图像处理方法,起源于岩相对岩石结构的定量描述工作,在数字图像处理和机器视觉领域中得到了广泛的应用,形成了一种独特的数字图像分析方法和理论。数学形态学是图像处理和模式识领域的新方法,其基本思想是:用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。优势有以下几点:有效滤除噪声,保留图像中原有信息,算法易于用并行处理方法有效实现(包括硬件实现),基于数学形态学的边缘信息提取处理优于基于微分运算的边缘提取算法,提取的边缘比较平滑,提取的图像骨架也比较连续,断点少。 二、课题相关原理: 形态学基本运算: 特殊领域运算形式——结构元素(Structure Element),在每个像素位置上与二值图像对应的区域进行特定的逻辑运算。运算结果是输出图像的相应像素。运算效果取决于结构元素大小内容以及逻辑运算性质。 常见形态学运算有腐蚀(Erosion)和膨胀(Dilation)两种。 集合论是数学形态学的基础。有集合、元素、子集、并集、补集、位移、映像(镜像对称)、差集等集合的基本概念。 对象和结构元素的3种关系:『对象X(Object)、结构元素B(Structure Element)』 B include in X 包含于、B hit X 击中(不全包含)、B miss X 击不中(不包含) 平移、对称集:Bx=Uy{x+y} B^=Uy{-y} 腐蚀:一种消除边界点,使边界向内部收缩的过程。利用它可以消除小而且无意义的物体。B对X腐蚀所产生的二值图像E是满足以下条件的点(x,y)的集合:如果B的原点平移到点(x,y),那么B将完全包含于X中。 膨胀:将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。利用它可以填补物体中的空洞。B 对X膨胀所产生的二值图像D是满足以下条件的点(x,y)的集合:如果B的原点平移到点(x,y),那么它与X的交集非空。 腐蚀和膨胀运算中存在对偶原理:X⊕B,它是所有满足以下条件的点X'的集合:在B中存在一点y,而且在X中存在一点x,使得x'=x+y。 基本运算:1.开运算(先腐蚀后膨胀的过程):利用它可以消除小物体,在纤细点处分离物体,平滑较大物体边界,但同时并不明显改变原来物体的面积。OPEN(X,B) 2.闭运算(先膨胀后腐蚀的过程):利用它可以填充物体内细小空洞,连接临近物体、平滑其边界,但同时并不明显改变原来物体的面积。CLOSE(X,B) 通常由于噪声的影响,图像在阈值化后所得到的边界通常都很不平滑,物体区域具有一些噪声孔,而背景区域上散布着一些小的噪声物体,连续的开和闭运算可以有效的改善这种情况,而有时,我们需要经过多次腐蚀之,后再加上相同次数的膨胀,才能产生比较好的处理效果。 另外两种是3.击中,击不中变换HMT(模板严格匹配)以及4.边缘和骨架(Boundary and Skeleton) 三、腐蚀和膨胀的Matlab实现: 腐蚀:删除对象边界某些像素。 膨胀:给图像中的对象边界添加像素。 在操作中,输出图像中所有给定像素的状态都是通过对输入图像的相应像素及邻域使用一定的规则进行确定。在膨胀操作时,输出像素值是输入图像相应像素邻域内所有像素的最大值。在二进制图像中,如果任何像素值为1,那么对应的输出像素值为1;而在腐蚀操作中,输出像素值是输入图像相应像素邻域内所有像素的最小值。在二进制图像中,如果任何一个像素值为0,那么对应的输出像素值为0。

数学形态学的腐蚀和膨胀运算

数学形态学的腐蚀和膨胀运算 "形态学"是描述动植物形态和结构的一门生物学分支,这里借用来指一种图像处理的方法.图像处理的形态学方法是一种"数学形态学"方法,用来提取图像成分,并据此来对图像区域的形状进行表示和描述.它的数学语言是集合理论,其中的集合代表图像中物体的形状.图像处理中常用的数学形态学方法包括腐蚀,膨胀,开,闭,边缘提取和图像细化.我依次给出Visual C++源代码: /************************************************************************* * * ErosionDIB() * * Parameters: * * HDIB hDib - objective DIB handle * BOOL bHori - erosion direction * * Return Value: * * BOOL - True is success, else False * * Description: * * This function do erosion with the specified direction * ************************************************************************/ BOOL ErosionDIB(HDIB hDib, BOOL bHori) { // start wait cursor WaitCursorBegin(); // Old DIB buffer if (hDib == NULL) { WaitCursorEnd(); return FALSE; } // only support 256 color image WORD wBitCount = DIBBitCount(hDib); if (wBitCount != 8) { WaitCursorEnd(); return FALSE; }

数字图像处理实验报告实验三

数字图像处理实验报告实验三

中南大学数字图像处理实验报告 实验三数学形态学及其应用

实验三 数学形态学及其应用 一.实验目的 1.了解二值形态学的基本运算 2.掌握基本形态学运算的实现 3.了解形态操作的应用 二.实验基本原理 腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。 膨胀就是把连接成分的边界扩大一层的处理。而收缩则是把连接成分的边界点去掉从而缩小一层的处理。 二值形态学 I(x,y), T(i,j)为 0/1图像Θ 腐蚀:[]),(&),(),)((),(0,j i T j y i x I AND y x T I y x E m j i ++=Θ== 膨胀:[]),(&),(),)((),(0 ,j i T j y i x I OR y x T I y x D m j i ++=⊕== 灰度形态学 T(i,j)可取10以外的值 腐蚀: []),(),(min ),)((),(1 ,0j i T j y i x I y x T I y x E m j i -++=Θ=-≤≤ 膨胀: []),(),(max ),)((),(1 ,0j i T j y i x I y x T I y x D m j i +++=⊕=-≤≤ 1.腐蚀Erosion: {}x B x B X x ?=Θ: 1B 删两边 2B 删右上 图5-1 剥去一层(皮) 2.膨胀Dilation: {}X B x B X x ↑⊕:= 1B 补两边 2B 补左下 图5-2 添上一层(漆) 3.开运算

数字图像处理技术试题答案

数字图像处理技术试题库 一、单项选择题:(本大题 小题, 2分/每小题,共 分) 1.自然界中的所有颜色都可以由()组成 A.红蓝绿 B.红黄绿 C.红黄蓝绿 D.红黄蓝紫白 2. 有一个长宽各为200个象素,颜色数为16色的彩色图,每一个象素都用R(红)、G(绿)、B(蓝)三个分量表示,则需要()字节来表示 A.100 B.200 C.300 D. 400 3.颜色数为16种的彩色图,R(红)、G(绿)、B(蓝)三个分量分别由1个字节表示,则调色板需要()字节来表示 A.48 B.60 C.30 D. 40 4.下面哪一个不属于bmp 文件的组成部分 A .位图文件信息头 B. 位图文件头 C.调色板 D. 数据库标示 5.位图中,最小分辨单元是 A.像素 B.图元 C.文件头 D.厘米 6.真彩色的颜色数为 A.888?? B. 161616?? C.128128128?? D.256256256?? 7.如果图像中出现了与相邻像素点值区别很大的一个点,即噪声,则可以通过以下方式去除 A.平滑 B.锐化 C. 坐标旋转 D. 坐标平移 8.下面哪一个选项不属于图像的几何变换() A.平移 B.旋转 C. 镜像 D. 锐化 9.设平移量为x x t t (,),则平移矩阵为() A .1 0 00 1 0 1x y t t ?????????? B. 1 0 00 -1 0 1x y t t ??-???????? C. 1 0 00 1 0 - 1x y t t ????????-?? D.1 0 00 1 0 - -1x y t t ?????????? 10.设旋转角度为a ,则旋转变换矩阵为() A .cos() sin() 0sin() cos() 00 0 1a a a a -?????????? B .cos() sin() 0sin() cos() 00 0 1a a a a ?????????? C .sin() cos() 0 sin() cos() 0 0 0 1a a a a -?????????? D .cos() sin() 0sin() cos() 00 0 1a a a a -????-?????? 11.下面哪一个选项是锐化模板 A .-1 -1 -1-1 9 -1-1 -1 -1?????????? B .-1 -1 -1-1 -9 -1-1 -1 -1?????????? C .-1 -1 -1-1 8 -1-1 -1 -1?????????? D .-1 -1 -1-1 6 -1-1 -1 -1?????????? 12.真彩色所能表示的颜色数目是 A .128128? B .256256256 ?? C .256 D .6059

图像的膨胀与腐蚀运算比较 zh

设计题目:图像的膨胀与腐蚀运算比较 学院: 班级: 学号: 设计人: 指导老师: 设计时间:2014年12月14日

图像的膨胀与腐蚀运算比较 一、实验目的: 1.了解膨胀与腐蚀的基本运算; 2.掌握膨胀与腐蚀的基本方法; 3.编写Matlab程序实现膨胀与腐蚀。 二、实验要求: 1.使用imdilate函数进行图像膨胀,并观察膨胀后图像的变化; 2.使用imerode函数进行图像腐蚀,并观察腐蚀后图像的变化; 三、实验原理: 膨胀:将于物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程,利用它可以填补物体中的空洞,以及消除包含在目标 区域中的小颗粒噪声。膨胀处理是腐蚀处理的对偶,可定义如下: 膨胀是以得到B的相对与它自身原点的映像并且由z对映像进行移 wèi yíz的集合,这样,和A至少有 位为基础的。A被B膨胀是所有位移 一个元素是重叠的。我们可以把上式改写为: 结构元素B可以看作一个卷积模板,区别在于膨胀是以集合运算为 基础的,卷积是以算术运算为基础的,但两者的处理过程是相似的。 ⑴用结构元素B,扫描图像A的每一个像素; ⑵用结构元素与其覆盖的二值图像做“与”操作; ⑶如果都为0,结果图像的该像素为0。否则为1; 膨胀(dilation)可以看做是腐蚀的对偶运算,其定义是:把结构元素 B平移a后得到Ba,若Ba击中X,我们记下这个a点。所有满足上述条件的a点组成的集合称做X被B膨胀的结果。用公式表示为:

D(X)={a | Ba↑X}=X B,图中X是被处理的对象,B是结构元素,不难知道,对于任意一个在阴影部分的点a,Ba击中X,所以X被B 膨胀的结果就是那个阴影部分。阴影部分包括X的所有范围,就象X膨胀了一圈似的,这就是为什么叫膨胀的原因。同样,如果B不是对称的,X被B膨胀的结果和X被 Bv膨胀的结果不同。让我们来看看实际上是怎样进行膨胀运算的。在图中,左边是被处理的图象X(二值图象,我们针对的是黑点),中间是结构元素B。膨胀的方法是,拿B的中心点和X上的点及X周围的点一个一个地对,如果B上有一个点落在X的范围内,则该点就为黑;右边是膨胀后的结果。可以看出,它包括X的所有范围,就象X膨胀了一圈似的。 腐蚀:是一种消除边界点,使边界点向内部收缩的过程,可以用来消除小且无意义的目标物。如果两目标物间有细小的联通,可以选取足够大的结构元素,将细小连通腐蚀掉。可定义如下: 对Z中的集合A和B,B对A进行腐蚀的整个过程如下: (1)用结构元素B,扫描图像A的每一个像素; (2)用结构元素与其覆盖的二值图像做“与”操作; (3)如果都为1,结果图像的该像素为1。否则为0; 腐蚀处理的结果是使原来的二值图像减小一圈。 其中,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腐蚀的结果不同。

腐蚀,膨胀,细化算法

第6章腐蚀,膨胀,细化算法 今天所讲的内容属于一门新兴的学科:数学形态学(Mathematical Morphology)。说起来很有意思,它是法国和德国的科学家在研究岩石结构时建立的一门学科。形态学的用途主要是获取物体拓扑和结构信息,它通过物体和结构元素相互作用的某些运算,得到物体更本质的形态。在图象处理中的应用主要是:(1)利用形态学的基本运算,对图象进行观察和处理,从而达到改善图象质量的目的;(2)描述和定义图象的各种几何参数和特征,如面积、周长、连通度、颗粒度、骨架和方向性等。 限于篇幅,我们只介绍二值图象的形态学运算,对于灰度图象的形态学运算,有兴趣的读者可以阅读有关的参考书。在程序中,为了处理的方便,还是采用256级灰度图,不过只用到了调色板中的0和255两项。 先来定义一些基本符号和关系。 1.元素 设有一幅图象X,若点a在X的区域以内,则称a为X的元素,记作a∈X,如图6.1所示。 2.B包含于X 设有两幅图象B,X。对于B中所有的元素ai,都有ai∈X,则称B包含于(included in)X,记作B X,如图6.2所示。 3.B击中X 设有两幅图象B,X。若存在这样一个点,它即是B的元素,又是X的元素,则称B击中(hit)X,记作B↑X,如图6.3所示。 4.B不击中X 设有两幅图象B,X。若不存在任何一个点,它即是B的元素,又是X的元素,即B和X 的交集是空,则称B不击中(miss)X,记作B∩X=Ф;其中∩是集合运算相交的符号,Ф表示空集。如图6.4所示。 图6.1 元素 图6.2 包含

图6.3 击中 图6.4 不击中 5.补集 设有一幅图象X,所有X区域以外的点构成的集合称为X的补集,记作X c,如图6.5所示。显然,如果B∩X=Ф,则B在X的补集内,即B X c。 图6.5 补集的示意图 6.结构元素 设有两幅图象B,X。若X是被处理的对象,而B是用来处理X的,则称B为结构元素(structure element),又被形象地称做刷子。结构元素通常都是一些比较小的图象。 7.对称集 设有一幅图象B,将B中所有元素的坐标取反,即令(x,y)变成(-x,-y),所有这些点构成的新的集合称为B的对称集,记作B v,如图6.6所示。 8.平移 设有一幅图象B,有一个点a(x0,y0),将B平移a后的结果是,把B中所有元素的横坐标加x0,纵坐标加y0,即令(x,y)变成(x+x0,y+y0),所有这些点构成的新的集合称为B的平移,记作B a,如图6.7所示。

数字图像处理_(整理后的试题)

一、单项选择题 1.一幅灰度级均匀分布的图象,其灰度范围在[0,255],则该图象的信息量为:D A. 0 B.255 C.6 D.8 2.图象与灰度直方图间的对应关系是:B A.一一对应 B.多对一 C.一对多 D.都不对 3. 下列算法中属于图象锐化处理的是:C A.低通滤波 B.加权平均法 C.高通滤 D. 中值滤波 4.下列算法中属于点处理的是:B A.梯度锐化 B.二值化 C.傅立叶变换 D.中值滤波 5、计算机显示器主要采用哪一种彩色模型A A、RGB B、CMY 或CMYK C、HSI D、HSV 6. 下列算法中属于图象平滑处理的是:C A.梯度锐化 B.直方图均衡 C. 中值滤波 https://www.doczj.com/doc/8d13745861.html,placian 增强 7.采用模板[-1 1]主要检测__C_方向的边缘。A.水平B.45° C.垂直D.135° 8.对一幅100 100 像元的图象,若每像元用8bit表示其灰度值,经霍夫曼编码后压缩图象的数据量为40000bit,则图象的压缩比为: A A.2:1 B.3:1 C.4:1 D.1:2 9.维纳滤波器通常用于 C A、去噪 B、减小图像动态范围 C、复原图像 D、平滑图像 10.图像灰度方差说明了图像哪一个属性。B A 平均灰度 B 图像对比度 C 图像整体亮度 D 图像细节 11、下列算法中属于局部处理的是:( D ) A.灰度线性变换 B.二值化 C.傅立叶变换 D.中值滤波 12、数字图像处理研究的内容不包括D。 A、图像数字化 B、图像增强 C、图像分割 D、数字图像存储 13、将灰度图像转换成二值图像的命令为C A.ind2gray B.ind2rgb C.im2bw D.ind2bw 14.像的形态学处理方法包括( D ) A.图像增强 B.图像锐化 C 图像分割 D 腐蚀 15.一曲线的方向链码为12345,则曲线的长度为 D a.5 b.4 c.5.83 d.6.24 16.下列图象边缘检测算子中抗噪性能最好的是:B a.梯度算子 b.Prewitt 算子 c.Roberts 算子 d. Laplacian 算子 17.二值图象中分支点的连接数为:D a.0 b.1 c.2 d.3 二、填空题 1.图像锐化除了在空间域进行外,也可在频率域进行。 2.对于彩色图像,通常用以区别颜色的特性是色调、饱和度、亮度。 3.依据图像的保真度,图像压缩可分为无损压缩和有损压缩 4.存储一幅大小为1024×1024,256 个灰度级的图像,需要8M bit。 5、一个基本的数字图像处理系统由图像输入、图像存储、图像输出、图像通信、图像处理和分析5个模块组成。 6、低通滤波法是使高频成分受到抑制而让低频成分顺利通过,从而实现图像平滑。 7、一般来说,采样间距越大,图像数据量少,质量差;反之亦然。 8、多年来建立了许多纹理分析法,这些方法大体可分为统计分析法和结构分析法两大类。 9、直方图修正法包括直方图均衡和直方图规定化两种方法。 10、图像压缩系统是有编码器和解码器两个截然不同的结构块组成的。 13、数字图像处理,即用计算机对图像进行处理。

相关主题
文本预览
相关文档 最新文档