资源描述:
《数字图像处理作业》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数字图像处理作业题目:图像膨胀与图像腐蚀学院:班级:学号:姓名:一、实验原理1、膨胀:给图像中的对象边界添加像素。9/9将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程。利用它可以填补物体中的空洞。B对X膨胀所产生的二值图像D是满足以下条件的点(x,y)的集合:如果B的原点平移到点(x,y),那么它与X的交集非空。数学表达式:BACÅ=可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,
2、也可以是一个自己定义的表示结构元素邻域的二进制矩阵。此外,imdilate还可以接受两个可选参数:PADOPT(padopt)——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。2、腐蚀:删除对象边界某些像素。一种消除边界点,使边界向内部收缩的过程。利用它可以消除小而且无意义的物体。B对X腐蚀所产生的二值图像E是满足以下条件的点(x,y)的集合:如果B的原点平移到点(x,y),那么B将完全包含于X中。数学表达式:BACQ可以使用imerode函数进行图
3、像腐蚀。imerode函数需要两个基本输入参数:待处理的输入图像以及结构元素对象。此外,imerode函数还可以接受3个可选参数:PADOPT(padopt)——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。M——指定原始图像的行数。二、实验内容1、膨胀的实验步骤步骤1,首先创建一个包含矩形对象的二值图像矩阵。BW=zeros(9,10);BW(4:6,4:7)=1步骤2,使用一个3×3的正方形结构元素对象对创建的图像进行膨胀。SE=strel('s
4、quare',3)步骤3,将图像BW和结构元素SE传递给imdilate函数。BW2=imdilate(BW,SE)步骤4,显示结果。imshow(BW,'notruesize')imshow(BW2,'notruesize');9/9效果图2、腐蚀的实验步骤步骤1,读取图像cameraman.tif(该图像是Matlab当前目录下自带的图片)BW=imread('D:1.jpg');BW1=rgb2gray(BW);步骤2,创建一个任意形状的结构元素对象SE=strel('arbitrary',eye(5
5、));步骤3,以图像BW1和结构元素SE为参数调用imerode函数进行腐蚀操作。BW2=imerode(BW1,SE);步骤4,显示操作结果imshow(BW1),title('原图像');figure,imshow(BW2),title('腐蚀后的图像');效果图9/93、膨胀和腐蚀联合操作的步骤:步骤1,创建结构元素:clear;closeallSE=strel('rectangle',[4030]);%注意:结构元素必须具有适当的大小,既可以删电流线又可以删除矩形.步骤2,使用结构元素腐蚀图像:%将会
6、删除所有直线,但也会缩减矩形BW=imread('D:1.jpg');BW1=rgb2gray(BW);BW2=imerode(BW1,SE);imshow(BW2),title('腐蚀后的图像');figure,imshow(BW1),title('原图像');步骤3,恢复矩形为原有大小,使用相同的结构元素对腐蚀过的图像进行膨胀.BW3=imdilate(BW2,SE);9/9figure,imshow(BW3),title('膨胀后的图像');效果图9/94、基于膨胀与腐蚀的形态操作——骨架化和边缘检测
7、(1)骨架化:某些应用中,针对一副图像,希望对图像中所有对象简化为线条,但不修改图像的基本结构,保留图像基本轮廓,这个过程就是所谓的骨架化。提供了专门的函数bwmorph,可以实现骨架化操作。clear;closeallBW=imread('D:1.jpg');BW1=rgb2gray(BW);BW2=bwmorph(BW1,'skel',Inf);imshow(BW1),title('原图像');figure,imshow(BW2),title('骨架化');效果图9/9(2)边缘检测对于一副灰度二进制图
8、像,如果图像像素值为1,则该像素的状态为ON,如果其像素值为0,则该像素的状态为OFF。在一副图像中,如果图像某个像素满足以下两个条件:1.该像素状态为ON,2.该像素邻域中有一个或多个像素状态为OFF。则认为该像素为边缘像素。Matlab中提供了专门的函数bwperim,可以用于判断一副二进制图像中的哪些像素为边缘像素。>>clear;closeallBW=imread('D:1.jpg');B