实验五 图像形态学处理
- 格式:doc
- 大小:543.50 KB
- 文档页数:2
实验五、数学形态学实验六、形态学图像处理一.实验目的及要求1.利用MATLAB研究二值形态学图像处理常用算法;2.掌握MATLAB形态学图像处理根本操作函数的使用方法; 3.了解形态学的根本应用。
二、实验原理1.编程实现二值图像的根本形态学处理〔腐蚀、膨胀、开运算和闭运算〕;选择不同结构元素筛选图像目标。
2.用形态学运算实现灰度图像的噪声平滑和图像边缘提取。
三、实验原理数学形态学图像处理的根本思想是利用一个称作结构元素的“探针〞收集图像的信息。
当探针在图像中不断移动时,便可考察图像各个局部间的相互关系,从而了解图像各个局部的结构特征。
作为探针的结构元素,可直接携带知识〔形态、大小、以及灰度和色度信息〕来探测所研究图像的结构特点。
二值形态学中的运算对象是集合,通常给出一个图像集合和一个结构元素集合,利用结构元素对图像进行操作。
其根本运算有四种:腐蚀、膨胀、开运算和闭运算。
基于这些根本运算和组合来进行图像形状和结构的分析及处理。
如果 A是图像集合,B是结构元素〔 B本身也是一个图像集合〕,形态学运算将使用B对A进行操作。
结构元素往往比图像小得多。
根本运算将遵循这个原那么。
?膨胀和腐蚀膨胀是在二值图像中“加长〞或“变粗〞的操作。
这种特殊的方式和变粗的程度由一个称为结构元素的集合控制。
腐蚀“收缩〞或“细化〞二值图像中的对象。
像在膨胀中一样,收缩的方式和程度由一个结构元素控制。
?开运算和闭运算在图像处理的实际应用中,更多地以各种组合的形式来使用膨胀和腐蚀,它们可以级连结合使用。
膨胀后再腐蚀,或者腐蚀后再膨胀,通常不能恢复成原来图像〔目标〕,而是产生一种新的形态变换,这就是开运算和闭运算。
当处理二值图像时,采用上述的形态学变换组合,主要应用于提取某一区域的边界线、图像边缘轮廓、物体骨架特征和目标识别等众多的实际应用。
更多内容青参考教材p402有关内容。
三、实验内容1、二值图像的形态学变换需要编写的二值图像形态学变换函数: functionnewbuf=BwFilter(oldbuf,select)该函数调用MATLAB关于膨胀、腐蚀和图像筛选算法的相关函数,对二值图像进行相应的处理,最后结果存放在newbuf数组中。
《医学图像处理》实验报告摘要本次实验的目的是对二值原始图像进行膨胀和腐蚀,并对经过膨胀和腐蚀后的两张图像进行集合的逻辑运算操作——交集、补集、相减;对二值图像进行边界提取操作;利用阈值处理的方法对二值图像进行连通分量的提取操作;运用上述结果和其他技术解决课本P442的习题9.36。
本次实验的内容是图像腐蚀图像膨胀边界提取连通分量的提取。
一、技术讨论1.1实验原理1.1.1图像的腐蚀腐蚀缩小或细化了二值图像中的物体。
用3X3的结构元,扫描二值图像的每一个元素,将结构元与其覆盖的二值图像做“与”操作,若结果均为1,输出图像的该像素为1,否则输出图像的该像素为0。
图示如下:1.1.2图像的膨胀膨胀会增长或粗化二值图像中的物体。
用3X3的结构元,扫描二值图像的每一个像素,将结构元关于原点的映射与其覆盖的二值图像做“与”操作,若结果均为0,输出图像的该像素为0,否则输出图像的该像素为1。
图示如下:1.1.3图像的边界提取对图像进行边界提取的方法是先对二值图像进行腐蚀,再将经过腐蚀后的输出图像和原始图像做集合差的逻辑运算。
图示如下:1.1.4图像的连通分量提取连通分量是指若像素子集S的全部像素之间存在一个通路,则可以说两个像素p和q之间是连通的,对于S中的任何像素p,S中连通到该像素的像素称为S的连通分量。
图像连通分量的提取方法是先对二值图像进行阈值处理,再对输出图像做腐蚀处理。
1.1.5测地膨胀测地膨胀不是包含一幅输入图像和特定的结构元素而是涉及两幅图像:标记图像和模版图像。
其基本思想是用特定结构元素对标记图像作膨胀运算,并将结果图像限制在模版图像之下。
图示如下:1.2实验函数示例:A.cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, intiterations=1 );——对二值图像进行腐蚀处理。
1.void cvDilate( constCvArr* src, CvArr* dst, IplConvKernel* element=NULL, intiterations=1 );--对二值图像进行膨胀处理;2.void cvThreshold( constCvArr* src, CvArr* dst, double threshold, double max_value, intthreshold_type);--阈值处理函数;二、结果与讨论2.1实验结果(每个实验均要使用3个不同大小的结构元进行处理,并将实验结果列举出来,注明结构元大小)a. Originpicb. intersectionc. img_eroded.img_dilatee. differencingf. Complementation图1.1、图像腐蚀和膨胀(3X3结构元,中心点为1,1)a. Originpicb. intersectionc. img_eroded.img_dilatee. differencingf. Complementation图1.2、图像腐蚀和膨胀(7X7结构元,中心点为3,3)a. Originpicb. intersectionc. img_eroded.img_dilatee. differencingf. Complementation图1.3、图像腐蚀和膨胀(9X9结构元,中心点为4,4)a. Originpicb. img_outc. img_erode图2.1、边界提取(3X3结构元,中心点为1,1)a. Originpicb. img_outc. img_erode图2.2、边界提取(7X7结构元,中心点为1,1)a. Originpicb. img_outc. img_erode图2.3、边界提取(10X10结构元,中心点为1,1)a. Originpicb. img_outc. img_erode图2.4、边界提取(10X10结构元,中心点为5,5)a. Originpicb.img_out1c.img_out2图3.1、连通分量的提取(5X5结构元,中心点为3,3)a. Originpicb.img_singlec.img_intersectd. img_boundary图4.1 problem4-362.2实验讨论(详细说明解决课本习题9.36的具体思路和过程,若有更好地解决课本习题9.36的方法,请详细给出解答思路或过程)1.腐蚀的作用是消除物体边界点,使目标缩小,可以消除小于结构元素的噪声点;膨胀的作用是将与物体接触的所有背景点合并到物体中,使目标增大,可添补目标中的空洞。
形态学图像处理实验1.算法原理1)提取与图像边界融合的颗粒可利用区域填充算法。
如图1所示为源图像,可将图像先转换为二值图像,然后对其进行取反,这样进行区域填充的结果将为与边界相连的颗粒,再与源图像进行比较,即可得出在源图像中与边界相连的颗粒图像。
2)提取彼此交叠的颗粒可利用图像的腐蚀与膨胀操作。
先用模板对图像进行腐蚀操作,由于相交叠的颗粒面积必然比独立的颗粒大,因此腐蚀操作之后剩下的部分为交叠颗粒的部分,再对其进行膨胀,将其与源图像进行比较操作,则可得出交叠的颗粒图像。
3)提取不交叠的颗粒得出交叠的颗粒之后,用源图像对其相减,则得出的为独立分布的颗粒图像。
2.Matlab源代码clear allclcorigin = imread('E:\Documents\BUPT\DIP\第三次作业\grain.jpg');imshow(origin);title('原图');origin = rgb2gray(origin);filterResult = medfilt2(origin);[m,n] = size(origin);%%%%%%%%%%%%取与边界融合的粒子%%%%%%%%%%%%%binaryIm = im2bw(origin);tmp = ~binary Im; %tmp为取反图像fieldFilling = imfill(tmp,'holes');figure, imshow(fieldFilling);title('区域填充结果');boudaryGrains = origin;for i = 1:mfor j = 1:nif fieldFilling(i,j) ==1boudaryGrains(i,j) = 0;endendendfigure, imshow(boudaryGrains);title('与边界融合的粒子结果');%%%%%%%%%%%取交叠与未交叠的粒子%%%%%%%%%%%%mask1 = strel('ball',12,12);%mask2 = ones(13,13);mask2 = strel('ball',7,7);mask3 = strel('disk',4);mask4 = strel('ball',6,6);result1 = imerode(filterResult,ones(15,15));result2 = filter2(fspecial('average',7),im2double(result1)); result2 = medfilt2(result2);result2 = im2uint8(result2);result3 = imdilate(result2,mask1);figure,imshow(result2);title('第一次腐蚀结果'); figure,imshow(result3);title('第一次膨胀结果');result4 = origin;for i = 1:mfor j = 1:nif result3(i,j) <=20result4(i,j) = 0;elseresult4(i,j) = origin(i,j);endendendfigure,imshow(result4);title('阈值处理结果');result5 = imerode(result4,mask4);result6 = imdilate(result5,mask4);figure,imshow(result6);title('交叠粒子结果');result7 = origin-result4;result8 = imerode(result7,mask4);result9 = imdilate(result8,mask4);figure,imshow(result9);title('未交叠粒子结果');3. 运行结果分析1) 提取与边界融合的颗粒原图区域填充结果与边界融合的粒子结果第一次腐蚀所示结果为在腐蚀之后进行了一次中值滤波和一次5X5均值滤波的结果,为使腐蚀的结果更好,去除独立颗粒的腐蚀残留图像。
图像处理中的形态学操作图像处理是计算机科学中的重要研究领域,形态学操作在图像处理中起着至关重要的作用。
形态学学并不是一种新的技术,而是一种对原始图像进行改进和增强的方法。
本文将从何为形态学操作开始,探讨形态学操作在图像处理中的应用,包括膨胀、腐蚀、开操作、闭操作与击中与击不中变换。
一、何为形态学操作形态学操作是一种运用于二值和灰度图像的图像处理技术,该技术主要用于改变二值形状的结构。
形态学操作的基础分为两类–膨胀和腐蚀。
膨胀可以对图像中的物体进行扩张和膨胀,使其相互靠近或合并成一个整体。
腐蚀则是对图像中的物体进行缩小和收缩,使其失去一些细节,变得更加简洁。
除此之外,还有开操作、闭操作、击中变换和击不中变换。
这些操作可以大大改善图像的质量,使其更能满足特定要求。
二、膨胀与腐蚀形态学操作中最为基础的操作就是膨胀和腐蚀,两者可以应用于二值图像和灰度图像。
在二值图像中,通过膨胀和腐蚀操作可以改变物体的形状和大小,或将两个物体结合成一个整体。
在灰度图像中更是如此,膨胀和腐蚀操作可以使图像细节失去一些,或远离一些不想要的噪声。
膨胀操作可简单理解为将物体旁边的像素点扩张出去,从而扩大物体的范围。
在处理图像时,这种扩张往往是指使用固定的形状结构元素,在物体的四周扩展数个像素点。
而腐蚀则相反,它能使物体缩小,并使像素点向物体内部收缩。
两者结合起来会给图像带来优秀的效果。
三、开操作和闭操作开操作和闭操作是另外两种典型形态学操作,它们可以通过膨胀和腐蚀来改变物体的形状。
它们应用于灰度图像时,改变的是灰度级值的大小。
开操作通过一次腐蚀操作后再进行一次膨胀操作来实现,闭操作相反,它是通过一次膨胀操作后再进行一次腐蚀操作。
开操作和闭操作可以有效地去除掉噪声点,使图像变得更加光滑。
因此,在图像处理过程中使用这两个操作非常常见。
四、击中变换与击不中变换击中变换和击不中变换也是形态学操作中的两种特殊情况。
击中变换是在二值图像中对目标进行检测,根据设定的模板找到目标的精确位置。
关于图形图像处理实训报告总结【九篇】实训报告总结:图形图像处理实训图形图像处理实训是计算机科学与技术专业的基础课程之一。
通过本次实训课程,我深入了解了图形图像处理的基本概念、方法和技术,并通过实际操作来提升了自己的实践能力。
下面是对本次实训的九篇报告总结:1. 实验一:图像读取与显示本次实验主要是学习如何读取和显示图像,以及使用Matplotlib库进行图像展示。
通过实验,我掌握了图像读取和显示的基本方法,并学会了基本的图像处理操作。
2. 实验二:图像的灰度变换实验二主要是学习图像的灰度变换,包括线性变换和非线性变换。
我学会了如何使用不同的灰度变换函数来调整图像的亮度和对比度,进一步提升图像的质量。
3. 实验三:图像的空间域滤波本次实验主要是学习图像的空间域滤波技术,包括均值滤波、中值滤波和高斯滤波等。
通过实验,我掌握了不同滤波方法的原理和实现方式,并学会了如何选择合适的滤波方法来降噪和模糊图像。
4. 实验四:图像的频域滤波实验四主要是学习图像的频域滤波技术,包括傅里叶变换和频域滤波等。
通过实验,我了解了傅里叶变换的原理和应用,并学会了如何使用频域滤波来实现图像的锐化和平滑。
5. 实验五:图像的形态学处理本次实验主要是学习图像的形态学处理技术,包括腐蚀、膨胀、开运算和闭运算等。
通过实验,我学会了如何使用形态学操作来改变图像的形状和结构,进一步改善图像的质量。
6. 实验六:图像的边缘检测实验六主要是学习图像的边缘检测技术,包括Sobel算子、Laplacian算子和Canny算子等。
通过实验,我了解了不同边缘检测方法的原理和应用,并学会了如何使用边缘检测来提取图像的轮廓和特征。
7. 实验七:图像的分割与聚类本次实验主要是学习图像的分割与聚类技术,包括阈值分割、区域生长和K均值聚类等。
通过实验,我掌握了不同分割与聚类方法的原理和应用,并学会了如何使用分割与聚类来识别和分析图像中的目标和区域。
8. 实验八:图像的特征提取与描述子实验八主要是学习图像的特征提取和描述子技术,包括尺度不变特征变换(SIFT)和方向梯度直方图(HOG)等。
实验五图像形态学处理一、实验目的:1、进一步了解MATLAB关于图像处理的相关指令。
2、了解图像腐蚀、膨胀、开启、闭合及细化的目的及意义,加深对其的感性认识,巩固所学理论知识。
3、能够编程实现图像的各种形态学处理。
4、观察并比较图像处理结果。
二、实验内容:图像腐蚀、图像膨胀、开启、闭合、细化三、实验仪器PC一台,MATLAB软件。
四、实验报告要求:1、写出程序2、附上处理前后的图像3、写出对处理前后图像的分析(即:说明图像的变化)有关结构元素说明:se1 = strel('square',11) % 结构元素为边长11的正方形se2 = strel('line',10,45) % 倾角为45度长为10的线性结构se3 = strel('disk',15) % 半径为15的圆盘se4 = strel('ball',15,5) %半径为15高为5的球形结构一、图像的膨胀运算(在右图中任选一幅图像处理)函数说明:se=strel('ball',8,8); %设定直径为8的球形结构元素I2=imdilate(I,se); %膨胀函数,I:原图像,se:结构元素,I2:输出图像二、任选题(一)中一幅图像根据膨胀程序编写腐蚀程序,实现腐蚀处理,保存处理前后图像(图像要标明'title'),并分析处理结果。
yuan.bmp函数: se=strel('ball',8,8); %设定球形结构元素I2=imerode(I,se); %腐蚀函数三、编写程序对gujia.bmp 图像实现开启闭合处理,保存处理前后图像(图像要标明'title'),并分析处理结果。
%开启闭合函数说明:se=strel('disk',5,4); %先生成圆形结构元素I1=imopen(I,se); %开启操作I :原图像,se :结构元素,I1:输出图像I2=imclose(I,se); %闭合操作四、对“Hello Word ” 图像进行一次或多次细化,观察效果,并细化到一个元素函数说明:I1=bwmorph(I,'thin',n); % I 为输入的二值图像,'thin':进行的操作,此处为细化,n :执行操作的次数,I1:输出图像% 细化I=imread(' Hello World .bmp');I=I(:,:,1);subplot(221);imshow(I); title('原图像');I1=bwmorph(I,'thin',1); %细化1次,'thin'为细化处理,将thin 改为skel 可以提取骨架 subplot(222);imshow(I1); title('细化1次的结果');I2=bwmorph(I,'thin',inf); %细化到目标只有一个元素subplot(223);imshow(I2); title('细化到只有一个元素');kong.bmp gujia.bmp Hello World.bmp原图像细化1次的结果细化到只有一个元素。
科学研究报告中如何展示实验结果的图像处理与分析导语:科学研究中,实验结果的图像处理与分析是非常重要的环节。
通过对图像进行处理和分析,可以得出更准确、更有说服力的结论,提升实验的可靠性和科学性。
本文将从图像处理的选择、图像处理工具的使用、结果的呈现方式、图像分析的方法以及图像处理的注意事项等方面进行讨论。
一、图像处理的选择图像处理在科学研究中有着广泛的应用。
选择合适的图像处理方法对于准确地提取实验结果非常重要。
常见的图像处理方法包括滤波、增强、分割、配准等。
根据实验的需求,选择相应的图像处理方法可以提高实验结果的可视化效果和准确性。
二、图像处理工具的使用现今有许多成熟的图像处理工具可供选择,如Adobe Photoshop、ImageJ等。
这些工具具有丰富的功能和友好的界面,可对图像进行裁剪、旋转、亮度对比度调整、去噪等操作。
此外,还可以进行图像分割、特征提取、测量等功能,供科学家深入研究实验结果。
三、结果的呈现方式展示实验结果时,选择合适的呈现方式也是至关重要的。
常见的方式包括线图、柱状图、散点图、热图、地图等。
线图适用于展示随时间变化的趋势,柱状图适用于不同条件下的比较,散点图适用于相关性分析,热图适用于显示数据的密度分布,地图适用于空间分布的展示。
根据实验的目的和结果的特点,选择合适的呈现方式可以更好地传达实验的信息。
四、图像分析的方法图像分析是科学研究中必不可少的一环。
通过图像分析,可以获得实验结果的定量指标。
常见的图像分析方法包括边缘检测、形态学处理、区域提取等。
通过这些方法,可以计算图像中目标物体的大小、形状、数量等参数,为后续的数据分析和统计提供依据。
五、图像处理的注意事项在进行实验结果的图像处理时,需要注意以下几点。
首先,要保持原始数据的完整性和准确性,尽量避免图像处理过程中的误操作。
其次,要选择合适的图像处理方法,避免过度处理或错失重要信息。
此外,要保持图像处理的一致性,确保不同样本或不同条件下的图像处理结果可比性。
课程:数字图像处理课程作业实验报告实验名称:Morphological and Other Set Operations实验编号:签名:姓名:学号:截止提交日期:年月日摘要:本实验学习一些基本的形态学图像处理知识。
掌握数学形态学集合的基本运算;编程实现二值图像的膨胀和腐蚀处理,掌握一些基本的形态学算法,如:边界提取;针对灰度图像编程实现膨胀和腐蚀处理,编写函数实现灰度图像形态学梯度处理和顶帽变换,最后对形态学梯度变换结果和顶帽变换结果进行比较。
一、技术论述1、图像的逻辑运算及数学形态学很多应用是以形态学概念为基础的,并涉及二值图像。
数学形态学的语言是集合论。
同样,形态学为大量的图像处理问题提供了一种一致的有力方法。
数学形态学中的集合表示图像中的不同对象。
例如,在二值图像中,所有黑色像素的集合是图像完整的形态学描述。
在二值图像中,正被讨论的集合是二维整数空间 (P)的元素,在这个二维整数空间中,集合的每个元素都是一个多元组(二维向量),这些多元组的坐标是一个黑色(或白色,取决于事先的约定)像素在图像中的坐标(x,y)。
灰度级数字图像可以表示为Z空间(Z3)上分量的集合。
在这种情况下,集合中每个元素的两个分量是像素的坐标,第3个分量对应于像素的离散灰度级值。
更高维度空间中的集合可以包含图像的其他属性,比如颜色和随时间变化的分量。
集合运算尽管本质上很简单,但对于实现以形态学为基础的图像处理算法是一种有力的补充手段。
本实验中,我们关注的是涉及二值图像和灰度图像的逻辑运算。
在图像处理中用到的主要集合运算是:并、交、补、差、位移和镜像。
图1中总结了这些运算的性质。
图1 主要的集合运算在两幅或多幅图像的对应像素间逐像素进行逻辑运算。
因为只有在两个变量都是1时,两个二进制变量的“与”运算才为1,所以只有两幅输人图像的对应像素均为1时,“与”运算的结果才是1。
图2显示了涉及图像逻辑运算的不同例子。
这里,黑色表示1,而白色表示0(这里使用两种约定的说法,有时会颠倒黑色和白色二值的意义,取决于在给定情况下哪种表达更清楚。
实验五 图像形态学处理
一、实验目的:
1、进一步了解MATLAB 关于图像处理的相关指令。
2、了解图像腐蚀、膨胀、开启、闭合及细化的目的及意义,加深对其的感性认识,巩固所学理论知识。
3、能够编程实现图像的各种形态学处理。
4、观察并比较图像处理结果。
二、实验内容:
图像腐蚀、图像膨胀、开启、闭合、细化
三、实验仪器
PC 一台,MATLAB 软件。
四、实验报告要求:
1、写出程序
2、附上处理前后的图像
3、写出对处理前后图像的分析(即:说明图像的变化)
有关结构元素说明:
se1 = strel('square',11) % 结构元素为边长11的正方形
se2 = strel('line',10,45) % 倾角为45度长为10的线性结构
se3 = strel('disk',15) % 半径为15的圆盘
se4 = strel('ball',15,5) %半径为15高为5的球形结构
一、图像的膨胀运算(在右图中任选一幅图像处理)
函数说明:
se=strel('ball',8,8); %设定直径为8的球形结构元素
I2=imdilate(I,se); %膨胀函数,I :原图像,se :结构元素,I2:输出图像
%膨胀程序
I=imread('yuan.bmp ');
subplot(121);imshow(I); title('原图像');
se=strel('ball',8,8);
I2=imdilate(I,se);
subplot(122);imshow(I2); title('膨胀后图像');
二、任选题(1)中一幅图像根据膨胀程序编写腐蚀程序,实现腐蚀处
理,保存处理前后图像(图像要标明'title'),并分析处理结果。
kong.bmp yuan.bmp
函数:
se=strel('ball',8,8); %设定球形结构元素
I2=imerode(I,se); %腐蚀函数
三、编写程序对gujia.bmp 图像实现开启闭合处理,保存处理前后图像(图像要标明'title'),并分析处理结果。
%开启闭合
函数说明:
se=strel('disk',5,4); %生成圆形结构元素
I1=imopen(I,se); %开启操作I :原图像,se :结构元素,I1:输出图像
I2=imclose(I,se); %闭合操作
四、对“Hello Word ” 图像进行一次或多次细化,观察效果,并细化到一个元素
函数说明:
I1=bwmorph(I,'thin',n); % I 为输入的二值图像,'thin':进行的操作,此处为细化,n :执行操作的次数,I1:输出图像
% 细化
I=imread(' Hello World .bmp');
I=I(:,:,1);
subplot(221);imshow(I); title('原图像');
I1=bwmorph(I,'thin',1); %细化1次,'thin'为细化处理,将thin 改为skel 可以提取骨架 subplot(222);imshow(I1); title('细化1次的结果');
I2=bwmorph(I,'thin',inf); %细化到目标只有一个元素
subplot(223);imshow(I2); title('细化到只有一个元素');
gujia.bmp Hello World.bmp。