Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 述职汇报 > 分水岭算法实验报告1,数据结构与算法实验报告

分水岭算法实验报告1,数据结构与算法实验报告

收藏

本作品内容为分水岭算法实验报告1,格式为 doc ,大小 311899 KB ,页数为 9页

分水岭算法实验报告1


("分水岭算法实验报告班级:09通信A班姓名:洪俊强学号:0915231017实验目的:1、熟悉分水岭算法2、熟悉matlab的使用二、实验原理1把图像分解为一些特定的性质相似的部分(区域或对象),并用这些部分对图像进行分析和描述。一幅图像往往包含许多不同类型的区域,如物体、环境和背景等。图像分析的一个重要方法就是用它们作为基本组成成分对图像进行描述例如为了在气泡室图片中检出质点碰撞形式并判定其发生位置,就要在图像中分割出气泡的轨迹及其端点。为了从输入的文本中识别出一串字符,首先就要把各个字符从背景和其他字符中分离出来。因此把图像分割为若干子图像,并利用各子图像的特性和它们之间的关系描述图像,对于图像识别和解释、物景分析以及图像的分块处理和存储都有很大的意义。图像分割基本上是对像素进行分类的过程。例如用某个灰度阈值把图像像素分成“黑”和“白”两类,就可以把黑的对象同白的背景区分开。常用的分割方法有灰度等级阈值法、谱和空间分类法、区域生长法和边缘检测法。灰度等级阈值法在图像只有两种组成部分的情况下,图像灰度的直方图常常呈现两个峰值。用两个峰值之间的谷值所对应的灰度作为阈值,把所有像素灰度大于或等于阈值的作为一类,小于阈值的作为另一类是一种最基本的两类分割方法。实际应用时为了改善分类的可靠性,可以利用某些附加的信息(例如已知两类区域的面积之比)使阈值的选择更加合理。在类别更多的情况下,可以采用多级阈值把各类分割开来(例如确定两个阈值,就可以把细胞图像分割为胞核、胞浆和背景三部分)。类别越多,图像直方图的峰值就越不明显,分割就更为困难。谱和空间分类法对于彩色和多光谱图像,可以用像素的几种性质(颜色和谱信号)对像素作比较精细的分类。对于黑白图像,用包括像素本身灰度在内的一组局部性质(例如该像素邻域灰级的均值)在多维空间中进行分类。对于一些复杂图像,这种方法比单独的灰度阈值法效果更好。区域生长法这是一种从图像中提取区域或实体的序贯分割法。根据灰度、纹理的均匀性、同背景的对比度以及区域、形状、尺寸等准则,把性质大致相同的邻近像素组合在一起以形成分割区域。边缘检测法用于获取图像内物体轮廓的分割方法。一般采用曲线拟合、轮廓跟踪或边缘点连接等技术求出物体的边界。此外,若对像素的类别给以某种概率度量或隶属度,则可以对像素反复进行分类,这就成为松弛迭代分割算法。这种算法有较好的效果,在图像分析中已得到广泛应用。2分水岭算法分水岭分割方法,是一种基于拓扑理论的数学形态学的分割方法,其基本思想是把图像看作是测地学上的拓扑地貌,图像中每一点像素的灰度值表示该点的海拔高度,每一个局部极小值及其影响区域称为集水盆,而集水盆的边界则形成分水岭。分水岭的概念和形成可以通过模拟浸入过程来说明。在每一个局部极小值表面,刺穿一个小孔,然后把整个模型慢慢浸入水中,随着浸入的加深,每一个局部极小值的影响域慢慢向外扩展,在两个集水盆汇合处构筑大坝,即形成分水岭。对于分水岭变换,目前存在着几种定义,我们这里所采用的定义是基于沉浸的离散图像的分水岭变换(watershedbyimmersion)。令f:D是一幅灰度图像,它的最大和最小灰度值为h_max和h_min。定义一个从h_min到h_max的水位h不断递增的递归过程。在这个过程中每个与不同的局部最小相关的汇水盆地都不断扩展,定义X(h)记作在水位h时候汇水盆地的集合的并。在h+1层,一个连通分量T(h+1)或者是一个新的局部最小,或者是一个已经存在的X(h)中的一个盆地的扩展。对于后者,按邻接关系计算高度为h+1的每一个点与各汇水盆地的距离。如果一个点与两个以上的盆地等距离,则它不属于任何盆地,否则它属于与它距离最近的盆地。这样从而产生新的X(h+1)。把在高度h出现的局部最小记作MIN(h)。把Y(h+1,X(h))记作高度为h+1同时属于X(h)的点的集合。分水岭变换Watershed(f)就是X(h_max)的补集:分水岭变换由于它以下优点被用在图像处理的许多领域:直观,快速并且可以并行计算,总是产生完整的边界,这样就避免了边界连接的后处理。而且不少研究人员把分水岭嵌入到多尺度框架中。然而,分水岭算法还是有一些致命的缺点,下面列出了最重要的几点。过度分割。由于大部分图像的梯度图都有许许多多的局部最小,所以分水岭变换的结果是无数的小区域边界,这样的结果毫无意义。通常的解决办法是使用标记的图片来减少局部最小的数量,即使用带标记的分水岭变换。对噪声的敏感。局部的一些改变会引起分割结果的明显改变,强烈的噪声有时候使得分水岭变换无法找出真正的边界。其中的一个解决办法是使用各项异性的滤波器。难以准确检测出低对比度的边界。由于对比度低所以使得信噪比高。所以由于前一个原因,对这种图片分水岭变换仍然无法很好的工作。3解决过分割问题的方法针对分水岭算法的过分割问题,已经提出了许多有效的解决方法。利用门限的分水岭算法。当两个汇水盆地即将连通时,首先判断,只有储水量和高度达到一定的阈值才判定为边界,否则把他们融合给与其相邻的最大的盆地。基于区域合并和分水岭的图像分割方法。根据定义的相似区域合并算法,对分割结果进行处理,合并相似区域来减小过分割。基于模糊C均值聚类和分水岭的图像分割方法。对分割结果利用模糊C均值聚类的方法进行相似小区域的合并,改善分割结果。三、实验内容1、在图像中对前景对象和背景对象进行标注区别,再应用分水岭算法会取得较好的分割效果。其中过程用到了许多matlab图像处理工具箱的函数,例如fspecial、imfilter、watershed、label2rgb、imopen、imclose、imreconstruct、imcomplement、imregionalmax、bwareaopen、graythresh和imimposemin函数等。具体标注过程为:首先对原图像进行形态学开操作或腐蚀后形态学重建,去除图片中的毛刺和小物体;接下来进行形态学关操作或膨胀后形态学重建,目的是填洞补沟,合并小的物体;关操作,然后腐蚀来收缩边缘,计算局部最大值就能得到较好的前景标记;去噪后选取合适的阈值转化为二值图像;为了不是背景标记太靠近目标对象边缘,通过“骨骼化”进行细化,对二值图像的距离进行分水岭变换,进而的到最终结果。2.流程图3.实验结果及分析可以直观看到,直接对梯度图像运用分水岭算法结果并不理想,过分割现象严重开始读入图像开运算闭运算前景标记分水岭变换换结束使用形态学重建技术对前景对象进行标记,标记的每个对象内部的像素值是连接在一起的。左图是用半径为20的圆形结构元素进行开操作。右图先对图像进行腐蚀然后形态学重建。下图对图像先膨胀后形态学重建:比较两幅图像Iobrcbr和Ioc,以重建为基础的开关操作(结果为Iobrcbr)比一般的开关操作(结果为Ioc)在去除小的污点时会更有效,并且不会影响这个图像的轮廓。在原来图像的基础上,显示局部极大值,对前景图像进行标记。少部分前景目标物体已经扩展到边缘,因此应该收缩一下边缘,可以先对图像进行关操作,然后再进行腐蚀来达到这样的效果。然后去除孤立像素点。对二值图像的距离进行分水岭变换,然后得到分水岭的界限在原图像中分别标记前景对象、背景对象和边界。为了使分割的边界更清楚,可以对图像进行膨胀操作。可以看出,效果好了很多基本反映出物体的边界信息。4.实验程序%%直接对梯度图像进行分水岭变换rgb=imread('1.png');%读取原图像I=rgb2gray(rgb);%转化为灰度图像imshow(I),title('原始灰度图像')hy=fspecial('sobel');%sobel算子hx=hy';Iy=imfilter(double(I),hy,'replicate');%滤波求y方向边缘Ix=imfilter(double(I),hx,'replicate');%滤波求x方向边缘gradmag=sqrt(Ix.^2+Iy.^2);%求模L=watershed(gradmag);%直接应用分水岭算法Ig=L==0;figure;imshow(Ig),%显示分割后的图像边界title('梯度图像的分水岭变换边界(Ig)')%%通过对图像进行一系列预处理,解决过分割问题se=strel('disk',20);%圆形结构元素Io=imopen(I,se);%形态学开操作figure;subplot(121)imshow(Io),%显示执行开操作后的图像title('开操作(Io)')Ie=imerode(I,se);%对图像进行腐蚀Iobr=imreconstruct(Ie,I);%形态学重建subplot(122);imshow(Iobr),%显示重建后的图像title('腐蚀后形态学重建(Iobr)')Ioc=imclose(Io,se);%形态学关操作figure;subplot(121)imshow(Ioc),%显示关操作后的图像title('关操作(Ioc)')Iobrd=imdilate(Iobr,se);%对图像进行膨胀Iobrcbr=imreconstruct(imcomplement(Iobrd),...imcomplement(Iobr));%形态学重建Iobrcbr=imcomplement(Iobrcbr);%图像求反subplot(122);imshow(Iobrcbr),%显示重建求反后的图像title('膨胀后形态学重建求反(Iobrcbr)')fgm=imregionalmax(Iobrcbr);%局部极大值figure;imshow(fgm),%显示重建后局部极大值图像title('重建后局部极大值图像(fgm)')I2=I;I2(fgm)=255;%局部极大值处像素值设置为255figure;imshow(I2),%在原图上显示极大值区域title('图上显示极大值区域(I2)')se2=strel(ones(5,5));%结构元素fgm2=imclose(fgm,se2);%关操作fgm3=imerode(fgm2,se2);%腐蚀fgm4=bwareaopen(fgm3,20);%开操作I3=I;I3(fgm4)=255;%前景处设置为255figure;subplot(121)imshow(I3)%显示修改后的极大值区域title('修改后的极大值区域(I3)')bw=im2bw(Iobrcbr,graythresh(Iobrcbr));%转化为二值图像subplot(122);imshow(bw),%显示二值图像title('二值图像(bw)')D=bwdist(bw);%计算距离DL=watershed(D);%分水岭变换bgm=DL==0;%求取分割边界figure;imshow(bgm),%显示分割后的边界title('分水岭边界(bgm)')gradmag2=imimposemin(gradmag,bgmfgm4);%设置最小值L=watershed(gradmag2);%分水岭变换I4=I;I4(imdilate(L==0,ones(3,3))bgmfgm4)=255;%前景及边界处设置为255figure;imshow(I4)%突出前景及边界title('前景和背景边界')四、讨论本算法较好的解决了分水岭算法的过分割问题,使得分割边界能够大致反映物体的边界信息,并且程序较为简单,处理速度较快,实时性好。分水岭算法存在如下缺点:(1)对图像中的噪声极敏感。输入图像通常是图像梯度,原始图像中的噪声能直接恶化图像的梯度,易于造成分割轮廓偏移。(2)易于产生过分割。由于受噪声、量化误差以及区域内纹理细节的影响,因此会产生很多局部最小值在后续分割中将出现大量细小区域。3)对低对比度图像易丢失重要轮廓。在此情况下,区域边界像素的梯度值也较低,目标的重要轮廓容易丢失。为了克服传统分水岭算法的缺点,很多学者进行了相关研究,提出了一些改进型分水岭算法,并成功应用到相关领域。一些学者将分水岭算法与其他方法相融合,为解决项目中遇到的实际问题提供了思路。在初始分割时尽量抑制噪声和细密纹理的影响,同时保留重要轮廓,合理降低区域数量,避免区域合并或减小合并难度和复杂度,成为解决传统分水岭算法问题的根本途径。就目前的研究进展而言,在解决传统分水岭算法的缺点方面,相关的改进方法可以归纳为4种:预处理滤波,标记,区域合并和其他方法。",)


  • 编号:1700788162
  • 分类:述职汇报
  • 软件: wps,office word
  • 大小:9页
  • 格式:docx
  • 风格:商务
  • PPT页数:311899 KB
  • 标签:

广告位推荐

相关述职汇报更多>