matlab数字图像处理 膨胀和腐蚀.doc_第1页
matlab数字图像处理 膨胀和腐蚀.doc_第2页
matlab数字图像处理 膨胀和腐蚀.doc_第3页
matlab数字图像处理 膨胀和腐蚀.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于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) =1R = 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 0B、使用一个33的正方形结构元素对象对创建的图像进行膨胀。C=strel(square,3)C =Flat STREL object containing 9 neighbors.Neighborhood: 1 1 1 1 1 1 1 1 1C、将图像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 0D、显示结果: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 allC= 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 allR=imread(circbw.tif);R1=bwperim(R);imshow(R);figure,imshow(R1); 实验结果:心得体会:本次实验利用形态学运算腐蚀和膨胀对图像进行了处理。数学形态学的基本思想是:用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。它的优点有:有效滤除噪声、保留图像

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论