主要内容

分水岭

流域变换

描述

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

例子

L=流域(A.)返回标签矩阵L这标识了输入矩阵的流域区域A..

L=流域(A.,康涅狄格州)指定在分水岭计算中使用的连接。

例子

全部收缩

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

中心1 = -40;中心2 = -Center1;dist = sqrt(2 *(2 *中心1)^ 2);RADIUS = DIST / 2 * 1.4;LIMS = [地板(CENTER1-1.2 *半径)CEIL(CENTER2 + 1.2 * RADIUS)];[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) title(“具有重叠对象的二值图像”)

图中包含一个轴。标题为“带重叠对象的二值图像”的轴包含类型为“图像”的对象。

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

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

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

获取距离变换图像的补码,以便对于分水岭变换,亮像素表示高海拔,暗像素表示低海拔。

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

图包含轴。具有距离变换标题补充的轴包含类型图像的对象。

计算分水岭变换。将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 * RADIUS)];[x,y,z] = meshgrid(lims(1):lims(2));bw1 = sqrt((x-center1)。^ 2 +(y-center1)。^ 2 +...(z-中心1)。^2)<=半径;bw2=sqrt((x-center2)。^2+(y-center2)。^2+...(z-中心2)。^2)<=半径;bw=bw1 | bw2;图,等高线(x,y,z,bw,0.5),轴平等的,标题(“BW”)Xlabel.x,伊拉贝尔Y,兹拉贝尔ZXLIM(LIMS),Ylim(LIMS),ZLIM(LIMS)视图(3),套光,照明GOURAUD.

图包含轴。带标题BW的轴包含类型补丁的对象。

计算距离变换。

d = Bwdist(〜bw);图,异形表面(x,y,z,d,半径/ 2),轴平等的标题('距离变换的异形表面')Xlabel.x,伊拉贝尔Y,兹拉贝尔ZXLIM(LIMS),Ylim(LIMS),ZLIM(LIMS)视图(3),套光,照明GOURAUD.

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

补充距离变换,强制非object像素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,伊拉贝尔Y,兹拉贝尔ZXLIM(LIMS),Ylim(LIMS),ZLIM(LIMS)视图(3),套光,照明GOURAUD.

图中包含一个轴。标题为分段对象的轴包含2个面片类型的对象。

输入参数

全部收缩

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

数据类型:单一的|双倍的|int8|int16|INT32.|INT64.|uint8|uint16|uint32|uint64|符合逻辑的

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

价值

意思

二维连接

四连通

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

8-连接

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

三维连接性

6-连接

如果触摸触摸,则连接像素。像素的附近是相邻像素:

  • 其中一个方向:向内、向外、向左、向右、向上和向下

18张

如果像素的面或边接触,则像素是连接的。像素的邻域是以下区域中的相邻像素:

  • 其中一个方向:向内、向外、向左、向右、向上和向下

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

26连通

如果它们的脸,边缘或角落触摸,则像素连接。像素的附近是相邻像素:

  • 其中一个方向:向内、向外、向左、向右、向上和向下

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

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

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

还可以通过指定3-x-3-x-…以更一般的方式为任何维度定义连接性-矩阵的by-30s和1.s这个1.- 相对于中心元素定义邻域位置的元素康涅狄格州.注意康涅狄格州必须围绕其中心元素对称。看见指定自定义连接想要查询更多的信息。

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

数据类型:双倍的|符合逻辑的

输出参数

全部收缩

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

提示

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

  • 为防止过度解除,通过使用图像从图像中移除浅mineaimhmin在使用之前的功能分水岭功能。

算法

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

参考

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

扩展能力

在R2006A之前介绍