主要内容

分水岭

流域变换

描述

通过将光像素代表高凸缘和暗像素表示低凸起的表面,通过将其视为“流域盆地”或“流域脊柱”或“流域脊线”。流域变换可用于将邻接的感兴趣区域分段为不同的物体。

例子

l=流域(一个返回标签矩阵l这标识了输入矩阵的流域区域一个

l=流域(一个康涅狄格州指定在流域计算中使用的连接。

例子

全部收缩

创建包含两个重叠圆形物体的二值图像。显示图像。

中心1 = -40;中心2 = -Center1;dist = sqrt(2 *(2 *中心1)^ 2);RADIUS = DIST / 2 * 1.4;LIMS = [地板(CENTER1-1.2 *半径)CEIL(CENTER2 + 1.2 *半径)];[x,y] = meshgrid(lims(1):lims(2));bw1 = sqrt((x-center1)。^ 2 +(y-center1)。^ 2)<=半径;BW2 = SQRT((X-Center2)。^ 2 +(Y-Center2)。^ 2)<=半径;Bw = bw1 | bw2;imshow(bw)标题(“带有重叠物体的二值图像”

图中包含一个轴对象。具有重叠对象的标题二进制图像的轴对象包含类型图像的对象。

计算二值图像补码的距离变换。输出图像中每个像素的值是该像素与最近的非零像素之间的距离bw

D = bwdist (~ bw);imshow (D,[])标题(“二值图像的距离变换”

图中包含一个轴对象。标题为“二值图像距离变换”的轴对象包含一个类型为图像的对象。

对距离变换后的图像进行补全,使分水岭变换中浅色像素代表高海拔,深色像素代表低海拔。

d = -d;imshow (D,[])标题(“距离变换的补码”

图中包含一个轴对象。标题为“距离变换的补码”的轴对象包含一个类型为image的对象。

计算分水岭变换。将ROI之外的像素设置为0

l =流域(d);l(〜bw)= 0;

将结果标签矩阵显示为RGB图像。

rgb = label2rgb (L,“喷气机”,(。5。5。5);imshow (rgb)标题('流域变换'

图中包含一个轴对象。具有标题流域变换的轴对象包含类型图像的对象。

制作一个包含两个重叠球体的三维二值图像。

中心1 = -10;中心2 = -Center1;dist = sqrt(3 *(2 *中心1)^ 2);RADIUS = DIST / 2 * 1.4;LIMS = [地板(CENTER1-1.2 *半径)CEIL(CENTER2 + 1.2 *半径)];[x,y,z] = meshgrid(lims(1):lims(2));bw1 = sqrt((x-center1)。^ 2 +(y-center1)。^ 2 +...(z-center1)。^ 2)< =半径;bw2 =√(x-center2)。^ 2 + (y-center2)。^ 2 +...(z-center2)。^ 2)< =半径;Bw = bw1 | bw2;图、等值面(x, y, z, bw 0.5),轴平等的、标题(“BW”)xlabel.x, ylabely, zlabelzXLIM(LIMS),Ylim(LIMS),ZLIM(LIMS)视图(3),套光,照明GOURAUD.

图中包含一个轴对象。具有标题BW的轴对象包含类型修补程序的对象。

计算距离变换。

D = bwdist (~ bw);图,异形表面(x,y,z,d,半径/ 2),轴平等的标题('距离变换的异形表面')xlabel.x, ylabely, zlabelzXLIM(LIMS),Ylim(LIMS),ZLIM(LIMS)视图(3),套光,照明GOURAUD.

图中包含一个轴对象。标题为距离变换等值面的轴对象包含一个patch类型的对象。

补充距离变换,强制非目标像素inf,然后计算流域变换。

d = -d;d(〜bw)= inf;l =流域(d);l(〜bw)= 0;图Isosurface(x,y,z,l == 1,0.5)异形表面(x,y,z,l == 2,0.5)轴平等的标题(“分段对象”)xlabel.x, ylabely, zlabelzXLIM(LIMS),Ylim(LIMS),ZLIM(LIMS)视图(3),套光,照明GOURAUD.

图中包含一个轴对象。具有标题分段对象的轴对象包含2个类型的inftice atch。

输入参数

全部收缩

输入图像,指定为任意维度的数字或逻辑数组。

数据类型:|双倍的|int8|INT16|INT32.|INT64.|uint8|uint16|uint32|uint64|逻辑

像素连接,指定为此表中的值之一。默认连接是8对于2-D图像,和263 d图像。

价值

意义

二维连接

四连接

如果它们的边缘触摸,则相连的像素。像素的附近是水平或垂直方向上的相邻像素。

8连接

如果它们的边缘或角落触摸,则相连的像素。像素的附近是水平,垂直或对角线方向上的相邻像素。

三维的连接性

6-connected

如果触摸触摸,则像素连接。一个像素的邻域是:

  • 其中一个方向:进,出,左,右,上,下

18张

如果像素的面或边缘相接触,它们就被连接起来。一个像素的邻域是:

  • 其中一个方向:进,出,左,右,上,下

  • 两个方向的组合,如垂直或向上

26连通

如果它们的脸部,边缘或角落触摸,则像素连接。一个像素的邻域是:

  • 其中一个方向:进,出,左,右,上,下

  • 两个方向的组合,如垂直或向上

  • 三个方向的组合,如右上或左下

更高的维度,分水岭使用默认值康迪德(ndims(a),'maximal')

连通性也可以通过指定一个3 × 3 ×…3的矩阵0年代和1年代。1- 相对于中心元素定义邻域位置的元素康涅狄格州.注意康涅狄格州必须对中心元素对称。看到指定自定义连接为更多的信息。

请注意

如果指定非默认连接,则图像边缘的像素可能不会被认为是边界像素。例如,如果conn = [0 0 0;1 1 1;0 0 0],第一行和最后一行上的元素不被认为是边界像素,因为根据连接性定义,它们没有连接到图像外部的区域。

数据类型:双倍的|逻辑

输出参数

全部收缩

标号矩阵,指定为非负整数的数字数组。元素标签0不属于一个独特的流域地区。元素标签1标记为2的元素属于第一个流域区域,以此类推。

提示

  • 此函数使用的分水岭变换算法在图像处理工具箱™软件的5.4 (R2007a)版本中更改。以前的算法偶尔会产生标记的不相邻的流域。如果您需要获得与前面算法相同的结果,请使用该函数Watershed_old.

  • 为防止过度解除,通过使用图像从图像中删除浅minea伊姆曼在使用之前的功能分水岭函数。

算法

分水岭使用Fernand Meyer算法[1]

参考

[1] Meyer, Fernand, "地形距离和分水岭线"信号处理,卷。1994年7月38日,第113-125页。

扩展功能

在R2006A之前介绍