第十章-图像分割课件_第1页
第十章-图像分割课件_第2页
第十章-图像分割课件_第3页
第十章-图像分割课件_第4页
第十章-图像分割课件_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

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

文档简介

第十章图像分割第十章图像分割1异常图像的分割是图像处理中最困难的任务之一。精确的分割决定着计算分析过程的成败。因此,应该对提高稳定分割的可能性予以特别关注。异常图像的分割是图像处理中最困难的任务之一。精确的分割决定着2图像分割算法主要基于图像亮度值的两个基本特性:1不连续性(图像的边缘)2相似性(预先定义准则将图像分割为相似区域:门限处理、区域生长、区域分离和聚合)图像分割算法主要基于图像亮度值的两个基本特性:310.1间断检测10.2边缘连接和边界检测10.3阈值处理10.4基于区域的分割10.5使用分水岭变换的分割10.1间断检测410.1间断检测数字图像中有三种基本类型的灰度级间断:点,线和边缘。10.1.1点检测模板进行检测-1-1-1|R|>T-18-1-1-1-110.1间断检测数字图像中有三种基本类型的灰度级间断:点,线5点检测

f=imread('pointdetect.tif');imshow(f);w=[-1-1-1;-18-1;-1-1-1];g=abs(imfilter(double(f),w));T=max(g(:));g=g>=T;figure,imshow(g);点检测

f=imread('pointdetect.tif'610.1.2线检测模板-1-1-1-1-12-12-12-1-1222-12-1-12-1-12-1-1-1-12-1-1-12-1-1-12水平+45度垂直-45度10.1.2线检测模板7f=imread('linedetect.tif');imshow(f);w=[2-1-1;-12-1;-1-12];g=imfilter(double(f),w);figure,imshow(g,[])gtop=g(1:120,1:120);gtop=pixeldup(gtop,4);figure,imshow(gtop,[]);f=imread('linedetect.tif');8gbot=g(end-119:end,end-119:end);gbot=pixeldup(gbot,4);figure,imshow(gbot,[]);g=abs(g);figure,imshow(g,[]);T=max(g(:));g=g>=T;figure,imshow(g);gbot=g(end-119:end,end-119:end910.1.3边缘检测边缘检测对于灰度级间断的检测是最为普遍的检测方法。利用微分方法求边缘注意:导数受噪声的影响非常之大。Sobel,Prewitt,RobertsLaplacian,LOG10.1.3边缘检测边缘检测对于灰度级间断的检测是最为普遍的10使用edge函数的边缘检测边缘检测的基本意图是使用如下两个基本准则之一在图像中找到亮度快速变化的地方1找到亮度的一阶导数在幅度上比指定的阈值大的地方。2找到亮度的二阶导数有零交叉的地方。使用edge函数的边缘检测边缘检测的基本意图是使用如下两个基11[g,t]=edge(f,’method’,parameters)Method:Sobel/Prewitt/Roberts/LaplacianofaGaussian(LOG)/Zerocrossing/CannyParameter:Thresh,direction:’horizontal’/’vertical’/’both’Sigma:标准差g:2值结果。t:阈值[g,t]=edge(f,’method’,paramete12例:使用Sobel模板提取边缘f=imread('edgedetect.tif');imshow(f);[gv,t]=edge(f,'sobel','vertical');figure,imshow(gv);t例:使用Sobel模板提取边缘f=imread('edged13指定一个较高的阈值将弱边缘去掉gv=edge(f,'sobel',0.15,'vertical');figure,imshow(gv);产生水平和垂直边缘gboth=edge(f,'sobel',0.15,'both');figure,imshow(gboth);指定一个较高的阈值将弱边缘去掉14函数edge不能计算+-45度边缘,如要计算这些边缘,需要制定模板,并使用函数imfilterw45=[-2-10;-10-1;012];%w45=[012;-10-1;-2-10];g45=imfilter(double(f),w45,'replicate');T=0.03*max(abs(g45(:)));g45=g45>=T;figure,imshow(g45);函数edge不能计算+-45度边缘,如要计算这些边缘,需要制15Sobel,LoG,Canny边缘检测器比较f=imread('edgedetect.tif');imshow(f);[g_sobel_default,ts]=edge(f,'sobel');figure,imshow(g_sobel_default);[g_log_default,tlog]=edge(f,'log');figure,imshow(g_log_default);[g_canny_default,tc]=edge(f,'canny');figure,imshow(g_canny_default);Sobel,LoG,Canny边缘检测器比较f=imread16g_sobel_best=edge(f,'sobel',0.05);figure,imshow(g_sobel_best);g_log_best=edge(f,'log',0.003,2.25);figure,imshow(g_log_best);g_canny_best=edge(f,'canny',[0.04,0.10],1.5);figure,imshow(g_canny_best);g_sobel_best=edge(f,'sobel',0.1710.2边缘连接和边界检测在得到的边缘上的像素点,由于噪声,不均匀光照的影响而产生的边缘间断,使得一组像素很少能完整地描绘一条边缘。使用边缘检测算法后,紧跟着使用连接过程将边缘像素组合成有意义的边缘。10.2边缘连接和边界检测在得到的边缘上的像素点,由于噪声,1810.2.1局部处理连接边缘点的最简单的方法之一:分析图像中每个点(x,y)的一个小邻域(3*3,5*5)内像素的特点。该点是一个得到的边缘点。依据事先预定的准则,将所有被认为是相似的点连接起来,形成满足这些准则的像素组成的一条边缘。10.2.1局部处理连接边缘点的最简单的方法之一:19边缘像素相似性的两个主要性质:1生成的边缘像素的梯度算子的响应强度2梯度向量的方向。如果同时满足这两个条件,则将边缘连接起来,在图像的每个位置重复这样的操作。边缘像素相似性的两个主要性质:1生成的边缘像素的梯度算子的响2010.2.2通过Hough变换进行整体处理根据给定图像上的一个点集,如何找到位于直线上的所有点的子集?利用直线的斜截式公式10.2.2通过Hough变换进行整体处理根据给定图像上的一21在参数空间中,相交的直线表示在xy平面中两点共线。为了表示垂直的情况,使用直线标准表达在参数空间中,相交的直线表示在xy平面中两点共线。22Hough变换将参数空间细分为了累加器单元。坐标为(i,j)的单元,对应参数空间坐标相关的方形。最初这些单元置为0。然后对于平面上的每一个非背景点变换到参数空间。将对应位置的累加器加1。累加器的值意味着xy平面上有多少个点共线。Hough变换将参数空间细分为了累加器单元23例:Hough变换f=imread('houghtrans.tif');imshow(f);H=hough(f);figure,imshow(H,[]);例:Hough变换f=imread('houghtrans.24给出坐标轴显示参数空间[H,theta,rho]=hough(f);figure,imshow(theta,rho,H,[],'notruesize');axison,axisnormal;xlabel('\theta'),ylabel('\rho');给出坐标轴显示参数空间[H,theta,rho]=hough25使用Hough变换作线检测和连接函数houghpeaks得到Hough变换的峰值点[r,c,hnew]=houghpeaks(h,numpeaks,threshold,nhood)h:Hough变换矩阵numpeaks:指定要寻找的最大峰threshold:阈值以下的认为不是峰nhood:抑制的邻域大小使用Hough变换作线检测和连接函数houghpeaks得到26函数houghpixels找到图像中影响到峰值的每一个非零值点的位置。函数houghlines采用一些策略,将位置相关的像素组合成线段。函数houghpixels找到图像中影响到峰值的每一个非零值2710.3阈值处理10.3.1全局阈值处理步骤:1)为T选一个初始估计值2)使用T分割图像,产生两组像素G1,G210.3阈值处理10.3.1全局阈值处理283)计算G1和G2范围内的像素的平均亮度值u1,u2,4)计算新阈值T=(u1+u2)/2;5)重复步骤2-4,直到迭代中的T的差比预先指定的参数T0小为止。3)计算G1和G2范围内的像素的平均亮度值u1,u2,29函数graythresh实现全局阈值,使用Otsu方法T=graythresh(f);f=imread('globalthreshold.tif');imshow(f);T=graythresh(f);g=f<=T*255;figure,imshow(g);函数graythresh实现全局阈值,使用Otsu方法T=g3010.3.2局部阈值处理针对背景照明不均匀时,全局阈值处理可能无效。针对照明问题作预处理进行补偿,同时使用形态学变换对图像进行处理。使用局部变化的阈值函数对图像进行阈值处理。10.3.2局部阈值处理针对背景照明不均匀时,全局阈值处理可3110.4基于区域的分割分割的目的是把图象分成区域。区域内部像素具有相似性10.4.1基础公式用R表示整个图象区域,将R分成n个子区域,满足:10.4基于区域的分割分割的目的是把图象分成区域。区域内部像32第十章-图像分割课件3310.4.2区域生长预先定义生长的准则,将像素或子区域合成较大的区域。由一个或多个开始点组成的集合的选择通常要基于问题的性质。当没有先验信息可用时,一种处理方法是在每个像素上计算同一组属性,在生长过程中,这些属性将像素分配到不同区域。10.4.2区域生长预先定义生长的准则,将像素或子区域合成较34相似性准则的选择不但依赖于所考虑的问题,而且依赖于可用的图象数据类型。但图象为单色图像时,图像分析应该用一组基于灰度级和空间性质的描述符来执行。若在区域生长中没有使用连通信息,则会产生错误结果。相似性准则的选择不但依赖于所考虑的问题,而且依赖于可用的图象35区域生长的另一个问题是停止规则的表达。一般来说,当不再有像素满足该区域所包含的准则时,生长区域就会停止。函数regiongrow实现区域生长。[g,NR,SI,TI]=regiongrow(f,S,T)S,T:是一个数组(与f大小相同)或一个标量。g:分割后的图象NR:不同区域的数目,SI:一幅包含有种子点的图像,TI:一幅包含在进行连通性处理之前通过阈值测试的像素的图象。区域生长的另一个问题是停止规则的表达。一般来说,当不再有像素36例:区域生长对焊接孔隙检测的应用f=imread('regiongrowimage.tif');imshow(f);imhist(f);[g,NR,SI,TI]=regiongrow(f,255,65);figure,imshow(g);figure,imshow(SI);figure,imshow(TI);例:区域生长对焊接孔隙检测的应用f=imread('regi3710.5使用分水岭变换的分割在地理学中,分水岭是指一个山脊,在该山脊两边的区域中有着不同流向的水系。分水岭变换将在图象中找到汇水盆地和脊线。在求解时,关键概念是将初始图象变换成另一幅图象,在变换后,汇水盆地就是我们想要识别的对象或区域。10.5使用分水岭变换的分割在地理学中,分水岭是指一个山脊,3810.5.1使用距离变换的分水岭分割二值图像的距离变换是一个相对简单的概念:它是每一个像素到最近非零值像素的距离。D=bwdist(f)值为1的像素的距离变换为010.5.1使用距离变换的分水岭分割二值图像的距离变换是一个391100011000000000012300123111.421100040例:距离变换的分水岭变换分割图像f=imread('anding.tif');imshow(f);T=graythresh(uint8(f));g=im2bw(f,T);figure,imshow(g);gc=~g;figure,imshow(gc);例:距离变换的分水岭变换分割图像f=imread('andi41D=bwdist(gc);figure,imshow(D,[]);L=watershed(-D);w=L==0;figure,imshow(w);g2=g&~w;figure,imshow(g2);D=bwdist(gc);4210.5.2使用梯度的分水岭分割在分水岭变换之前,通常要使用梯度幅度来与处理图像。梯度图象在沿对象的边缘处有较高的像素值,而在其他地方则有较低的像素值。理想情况下,分水岭变换会沿着对象边缘处产生分水岭脊线。10.5.2使用梯度的分水岭分割在分水岭变换之前,通常要使用43例:使用梯度和分水岭变换分割图像f=imread('blackbubble.tif');imshow(f);h=fspecial('sobel');fd=double(f);g=sqrt(imfilter(fd,h,'replicate').^2+imfilter(fd,h','replicate').^2);figure,imshow(g,[]);L=watershed(g);wr=L==0;figure,imshow(wr);例:使用梯度和分水岭变换分割图像f=imread('blac44%解决过分割,在计算分水岭变换之前,先平滑梯度图象。g2=imclose(imopen(g,ones(3,3)),ones(3,3));L2=watershed(g2);wr2=L2==0;f2=f;f2(wr2)=255;figure,imshow(f2);%解决过分割,在计算分水岭变换之前,先平滑梯度图象。4510.5.3控制标记符的分水岭分割由于噪声和梯度局部的不规则性导致国分割的产生。解决该问题的一种实际方法是加入一个预处理阶段,以将一些先验知识带到分割过程中,从而限制所允许的区域的数目,避免过分割。10.5.3控制标记符的分水岭分割由于噪声和梯度局部的不规则46用于控制过分割的一种方法基于标记符的概念。标记符是一个属于一幅图像的连通分量。我们希望有一个内部标记符集合(处于每个感兴趣对象的内部)和一个外部标记符集合(包含在背景中)。这些标记符可以如下的修改梯度图象。用于控制过分割的一种方法基于标记符的概念。47例:标记符控制的分水岭分割图像f=imread('labelwatershed.tif');imshow(f);h=fspecial('sobel');fd=double(f);g=sqrt(imfilter(fd,h,'replicate').^2+imfilter(fd,h','replicate').^2);figure,imshow(g,[]);L=watershed(g);wr=L==0;figure,imshow(wr);例:标记符控制的分水岭分割图像f=imread('label48%解决过分割,用imregionalmin计算图像中大量局部最小区域的位置rm=imregionalmin(g);figure,imshow(rm);%解决过分割,用imregionalmin计算图像中大量局部49%发现显示的多数局部最小区域位置非常浅,表示了与我们的分割问题不相关的细节。%为了消除这些无关的小区域,我们采用函数imextendedmin,该函数科计算图像中的%‘低点’集合,即比周围更深的点的集合(通过某个高度阈值)。im=imextendedmin(f,2);fim=f;fim(im)=175;%在原图像上以灰色气泡的形式叠加扩展的局部最小区域位置。figure,imshow(fim);%发现显示的多数局部最小区域位置非常浅,表示了与我们的分割问50%下面,我们需要寻找外部标记符或者我们确信属于背景的像素。在这里我们采用的方法是%用找到的像素去标记背景,这些像素恰好位于内部标记符中间的位置,通过求另一个分水岭%问题,我们可以做到这一点。Lim=watershed(bwdist(im));em=Lim==0;figure,imshow(em);%下面,我们需要寻找外部标记符或者我们确信属于背景的像素。在51%利用内部标记符合外部标记符修改梯度图象。使局部最小区域仅出现在标记的位置,其他像素%按需要“上推”,一边删除其他的局部最小区域。g2=imimposemin(g,im|em);figure,imshow(g2,[]);L2=watershed(g2);f2=f;f2(L2==0)=255;figure,imshow(f2);%利用内部标记符合外部标记符修改梯度图象。使局部最小区域仅出52大作业:1月10号之前,上传至1/fuhui/homework/微机图像处理端口:2121命名:姓名+学号包括:程序(源文件:代码和图像)+报告要求:实现对图像的增强变化(空域和频域),包括平滑,锐化,对比度增强等,实现对图像的分割(灰度图和彩色图)。需要做出界面。报告中阐述实现各项图像处理功能的方法,以及程序如何操作的说明。大作业:1月10号之前,上传至ftp://202.204.153第十章图像分割第十章图像分割54异常图像的分割是图像处理中最困难的任务之一。精确的分割决定着计算分析过程的成败。因此,应该对提高稳定分割的可能性予以特别关注。异常图像的分割是图像处理中最困难的任务之一。精确的分割决定着55图像分割算法主要基于图像亮度值的两个基本特性:1不连续性(图像的边缘)2相似性(预先定义准则将图像分割为相似区域:门限处理、区域生长、区域分离和聚合)图像分割算法主要基于图像亮度值的两个基本特性:5610.1间断检测10.2边缘连接和边界检测10.3阈值处理10.4基于区域的分割10.5使用分水岭变换的分割10.1间断检测5710.1间断检测数字图像中有三种基本类型的灰度级间断:点,线和边缘。10.1.1点检测模板进行检测-1-1-1|R|>T-18-1-1-1-110.1间断检测数字图像中有三种基本类型的灰度级间断:点,线58点检测

f=imread('pointdetect.tif');imshow(f);w=[-1-1-1;-18-1;-1-1-1];g=abs(imfilter(double(f),w));T=max(g(:));g=g>=T;figure,imshow(g);点检测

f=imread('pointdetect.tif'5910.1.2线检测模板-1-1-1-1-12-12-12-1-1222-12-1-12-1-12-1-1-1-12-1-1-12-1-1-12水平+45度垂直-45度10.1.2线检测模板60f=imread('linedetect.tif');imshow(f);w=[2-1-1;-12-1;-1-12];g=imfilter(double(f),w);figure,imshow(g,[])gtop=g(1:120,1:120);gtop=pixeldup(gtop,4);figure,imshow(gtop,[]);f=imread('linedetect.tif');61gbot=g(end-119:end,end-119:end);gbot=pixeldup(gbot,4);figure,imshow(gbot,[]);g=abs(g);figure,imshow(g,[]);T=max(g(:));g=g>=T;figure,imshow(g);gbot=g(end-119:end,end-119:end6210.1.3边缘检测边缘检测对于灰度级间断的检测是最为普遍的检测方法。利用微分方法求边缘注意:导数受噪声的影响非常之大。Sobel,Prewitt,RobertsLaplacian,LOG10.1.3边缘检测边缘检测对于灰度级间断的检测是最为普遍的63使用edge函数的边缘检测边缘检测的基本意图是使用如下两个基本准则之一在图像中找到亮度快速变化的地方1找到亮度的一阶导数在幅度上比指定的阈值大的地方。2找到亮度的二阶导数有零交叉的地方。使用edge函数的边缘检测边缘检测的基本意图是使用如下两个基64[g,t]=edge(f,’method’,parameters)Method:Sobel/Prewitt/Roberts/LaplacianofaGaussian(LOG)/Zerocrossing/CannyParameter:Thresh,direction:’horizontal’/’vertical’/’both’Sigma:标准差g:2值结果。t:阈值[g,t]=edge(f,’method’,paramete65例:使用Sobel模板提取边缘f=imread('edgedetect.tif');imshow(f);[gv,t]=edge(f,'sobel','vertical');figure,imshow(gv);t例:使用Sobel模板提取边缘f=imread('edged66指定一个较高的阈值将弱边缘去掉gv=edge(f,'sobel',0.15,'vertical');figure,imshow(gv);产生水平和垂直边缘gboth=edge(f,'sobel',0.15,'both');figure,imshow(gboth);指定一个较高的阈值将弱边缘去掉67函数edge不能计算+-45度边缘,如要计算这些边缘,需要制定模板,并使用函数imfilterw45=[-2-10;-10-1;012];%w45=[012;-10-1;-2-10];g45=imfilter(double(f),w45,'replicate');T=0.03*max(abs(g45(:)));g45=g45>=T;figure,imshow(g45);函数edge不能计算+-45度边缘,如要计算这些边缘,需要制68Sobel,LoG,Canny边缘检测器比较f=imread('edgedetect.tif');imshow(f);[g_sobel_default,ts]=edge(f,'sobel');figure,imshow(g_sobel_default);[g_log_default,tlog]=edge(f,'log');figure,imshow(g_log_default);[g_canny_default,tc]=edge(f,'canny');figure,imshow(g_canny_default);Sobel,LoG,Canny边缘检测器比较f=imread69g_sobel_best=edge(f,'sobel',0.05);figure,imshow(g_sobel_best);g_log_best=edge(f,'log',0.003,2.25);figure,imshow(g_log_best);g_canny_best=edge(f,'canny',[0.04,0.10],1.5);figure,imshow(g_canny_best);g_sobel_best=edge(f,'sobel',0.7010.2边缘连接和边界检测在得到的边缘上的像素点,由于噪声,不均匀光照的影响而产生的边缘间断,使得一组像素很少能完整地描绘一条边缘。使用边缘检测算法后,紧跟着使用连接过程将边缘像素组合成有意义的边缘。10.2边缘连接和边界检测在得到的边缘上的像素点,由于噪声,7110.2.1局部处理连接边缘点的最简单的方法之一:分析图像中每个点(x,y)的一个小邻域(3*3,5*5)内像素的特点。该点是一个得到的边缘点。依据事先预定的准则,将所有被认为是相似的点连接起来,形成满足这些准则的像素组成的一条边缘。10.2.1局部处理连接边缘点的最简单的方法之一:72边缘像素相似性的两个主要性质:1生成的边缘像素的梯度算子的响应强度2梯度向量的方向。如果同时满足这两个条件,则将边缘连接起来,在图像的每个位置重复这样的操作。边缘像素相似性的两个主要性质:1生成的边缘像素的梯度算子的响7310.2.2通过Hough变换进行整体处理根据给定图像上的一个点集,如何找到位于直线上的所有点的子集?利用直线的斜截式公式10.2.2通过Hough变换进行整体处理根据给定图像上的一74在参数空间中,相交的直线表示在xy平面中两点共线。为了表示垂直的情况,使用直线标准表达在参数空间中,相交的直线表示在xy平面中两点共线。75Hough变换将参数空间细分为了累加器单元。坐标为(i,j)的单元,对应参数空间坐标相关的方形。最初这些单元置为0。然后对于平面上的每一个非背景点变换到参数空间。将对应位置的累加器加1。累加器的值意味着xy平面上有多少个点共线。Hough变换将参数空间细分为了累加器单元76例:Hough变换f=imread('houghtrans.tif');imshow(f);H=hough(f);figure,imshow(H,[]);例:Hough变换f=imread('houghtrans.77给出坐标轴显示参数空间[H,theta,rho]=hough(f);figure,imshow(theta,rho,H,[],'notruesize');axison,axisnormal;xlabel('\theta'),ylabel('\rho');给出坐标轴显示参数空间[H,theta,rho]=hough78使用Hough变换作线检测和连接函数houghpeaks得到Hough变换的峰值点[r,c,hnew]=houghpeaks(h,numpeaks,threshold,nhood)h:Hough变换矩阵numpeaks:指定要寻找的最大峰threshold:阈值以下的认为不是峰nhood:抑制的邻域大小使用Hough变换作线检测和连接函数houghpeaks得到79函数houghpixels找到图像中影响到峰值的每一个非零值点的位置。函数houghlines采用一些策略,将位置相关的像素组合成线段。函数houghpixels找到图像中影响到峰值的每一个非零值8010.3阈值处理10.3.1全局阈值处理步骤:1)为T选一个初始估计值2)使用T分割图像,产生两组像素G1,G210.3阈值处理10.3.1全局阈值处理813)计算G1和G2范围内的像素的平均亮度值u1,u2,4)计算新阈值T=(u1+u2)/2;5)重复步骤2-4,直到迭代中的T的差比预先指定的参数T0小为止。3)计算G1和G2范围内的像素的平均亮度值u1,u2,82函数graythresh实现全局阈值,使用Otsu方法T=graythresh(f);f=imread('globalthreshold.tif');imshow(f);T=graythresh(f);g=f<=T*255;figure,imshow(g);函数graythresh实现全局阈值,使用Otsu方法T=g8310.3.2局部阈值处理针对背景照明不均匀时,全局阈值处理可能无效。针对照明问题作预处理进行补偿,同时使用形态学变换对图像进行处理。使用局部变化的阈值函数对图像进行阈值处理。10.3.2局部阈值处理针对背景照明不均匀时,全局阈值处理可8410.4基于区域的分割分割的目的是把图象分成区域。区域内部像素具有相似性10.4.1基础公式用R表示整个图象区域,将R分成n个子区域,满足:10.4基于区域的分割分割的目的是把图象分成区域。区域内部像85第十章-图像分割课件8610.4.2区域生长预先定义生长的准则,将像素或子区域合成较大的区域。由一个或多个开始点组成的集合的选择通常要基于问题的性质。当没有先验信息可用时,一种处理方法是在每个像素上计算同一组属性,在生长过程中,这些属性将像素分配到不同区域。10.4.2区域生长预先定义生长的准则,将像素或子区域合成较87相似性准则的选择不但依赖于所考虑的问题,而且依赖于可用的图象数据类型。但图象为单色图像时,图像分析应该用一组基于灰度级和空间性质的描述符来执行。若在区域生长中没有使用连通信息,则会产生错误结果。相似性准则的选择不但依赖于所考虑的问题,而且依赖于可用的图象88区域生长的另一个问题是停止规则的表达。一般来说,当不再有像素满足该区域所包含的准则时,生长区域就会停止。函数regiongrow实现区域生长。[g,NR,SI,TI]=regiongrow(f,S,T)S,T:是一个数组(与f大小相同)或一个标量。g:分割后的图象NR:不同区域的数目,SI:一幅包含有种子点的图像,TI:一幅包含在进行连通性处理之前通过阈值测试的像素的图象。区域生长的另一个问题是停止规则的表达。一般来说,当不再有像素89例:区域生长对焊接孔隙检测的应用f=imread('regiongrowimage.tif');imshow(f);imhist(f);[g,NR,SI,TI]=regiongrow(f,255,65);figure,imshow(g);figure,imshow(SI);figure,imshow(TI);例:区域生长对焊接孔隙检测的应用f=imread('regi9010.5使用分水岭变换的分割在地理学中,分水岭是指一个山脊,在该山脊两边的区域中有着不同流向的水系。分水岭变换将在图象中找到汇水盆地和脊线。在求解时,关键概念是将初始图象变换成另一幅图象,在变换后,汇水盆地就是我们想要识别的对象或区域。10.5使用分水岭变换的分割在地理学中,分水岭是指一个山脊,9110.5.1使用距离变换的分水岭分割二值图像的距离变换是一个相对简单的概念:它是每一个像素到最近非零值像素的距离。D=bwdist(f)值为1的像素的距离变换为010.5.1使用距离变换的分水岭分割二值图像的距离变换是一个921100011000000000012300123111.421100093例:距离变换的分水岭变换分割图像f=imread('anding.tif');imshow(f);T=graythresh(uint8(f));g=im2bw(f,T);figure,imshow(g);gc=~g;figure,imshow(gc);例:距离变换的分水岭变换分割图像f=imread('andi94D=bwdist(gc);figure,imshow(D,[]);L=watershed(-D);w=L==0;figure,imshow(w);g2=g&~w;figure,imshow(g2);D=bwdist(gc);9510.5.2使用梯度的分水岭分割在分水岭变换之前,通常要使用梯度幅度来与处理图像。梯度图象在沿对象的边缘处有较高的像素值,而在其他地方则有较低的像素值。理想情况下,分水岭变换会沿着对象边缘处产生分水岭脊线。10.5.2使用梯度的分水岭分割在分水岭变换之前,通常要使用96例:使用梯度和分水岭变换分割图像f=imread('blackbubble.tif');imshow(f);h=fspecial('sobel');fd=double(f);g=sqrt(imfilter(fd,h,'replicate').^2+imfilter(fd,h','replicate').^2);figure,imshow(g,[]);L=watershed(g);wr=L==0;figure,imshow(wr);例:使用梯度和分水岭变换分割图像f=imread('blac97%解决过分割,在计算分水岭变换之前,先平滑梯度图象。g2=im

温馨提示

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

评论

0/150

提交评论