主要内容

分水岭

分水岭变换

描述

分水岭变换发现“汇水盆地”或“分水岭脊线”在一个图像,把它作为一个表面光像素代表高海拔和暗像素代表低海拔。分水岭变换可用于段相邻地区的利益转化为不同的对象。

例子

l=分水岭(一个)返回一个标签矩阵l确定输入矩阵的分水岭地区一个

l=分水岭(一个,康涅狄格州)指定要使用的连接计算的分水岭。

例子

全部折叠

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

center1 = -40;center2 = -center1;dist =√2 * 2 * center1) ^ 2);半径= dist / 2 * 1.4;lims =[地板(center1 - 1.2 *半径)装天花板(center2 + 1.2 *半径)];(x, y) = meshgrid (lims (1): lims (2));bw1 =√(x-center1)。^ 2 + (y-center1)。^2) <= radius; bw2 = sqrt((x-center2).^2 + (y-center2).^2) <= radius; bw = bw1 | bw2; imshow(bw) title(的二进制图像重叠对象的)

图包含一个坐标轴对象。坐标轴对象与标题二进制图像重叠的对象包含一个类型的对象的形象。

计算的距离变换补的二进制图像。每个像素的值在输出图像像素之间的距离,最近的非零像素的bw

D = bwdist (~ bw);imshow (D,[])标题(的二进制映像的距离变换)

图包含一个坐标轴对象。二进制映像的坐标轴对象与标题距离变换包含一个类型的对象的形象。

把补的距离转换图像,光像素代表高海拔和暗像素代表低海拔的分水岭变换。

D = - D;imshow (D,[])标题(距离变换的补充)

图包含一个坐标轴对象。距离变换的坐标轴对象与标题补包含一个类型的对象的形象。

计算分水岭变换。设置像素以外的ROI0

L =分水岭(D);L (~ bw) = 0;

显示生成的标签作为一个RGB图像矩阵。

rgb = label2rgb (L,“喷气机”,(。5。5。5);imshow (rgb)标题(“分水岭变换”)

图包含一个坐标轴对象。坐标轴对象标题包含一个类型的对象图像进行分水岭变换。

做一个3 d二进制图像包含两个重叠的领域。

center1 = -10;center2 = -center1;dist =√3 * 2 * center1) ^ 2);半径= dist / 2 * 1.4;lims =[地板(center1 - 1.2 *半径)装天花板(center2 + 1.2 *半径)];[x, y, z] = meshgrid (lims (1): lims (2));bw1 =√(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”)包含x,ylabely,zlabelzxlim (lims) ylim (lims) zlim (lims)视图(3),camlight,照明高洛德

图包含一个坐标轴对象。与标题BW坐标轴对象,包含x, y ylabel包含一个补丁类型的对象。

计算出距离变换。

D = bwdist (~ bw);图、等值面(x, y, z D / 2)半径、轴平等的标题(“距离变换的等值面”)包含x,ylabely,zlabelzxlim (lims) ylim (lims) zlim (lims)视图(3),camlight,照明高洛德

图包含一个坐标轴对象。距离变换的坐标轴对象与标题等值面,包含x, y ylabel包含一个补丁类型的对象。

补充的距离变换,迫使物体像素,然后计算分水岭变换。

D = - D;D (~ bw) =正;L =分水岭(D);L (~ bw) = 0;图等值面(x, y, z L = = 1, 0.5)等值面(x, y, z L = = 2, 0.5)轴平等的标题(“分段对象”)包含x,ylabely,zlabelzxlim (lims) ylim (lims) zlim (lims)视图(3),camlight,照明高洛德

图包含一个坐标轴对象。坐标轴对象与标题分割对象,包含x, y ylabel包含2块类型的对象。

输入参数

全部折叠

输入图像,指定为一个数字或逻辑阵列的维度。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑

像素连接,指定为这个表中的值之一。默认的连接是8对于二维的图像,和263 d图像。

价值

意义

二维的连接性

4

边缘像素连接如果他们的联系。附近一个像素的相邻像素在水平或垂直方向。

3×3像素附近有四个像素连接到中心像素

当前像素显示在灰色。

8

像素连接如果边缘或角落联系。附近一个像素的相邻像素在水平、垂直或对角线方向。

3×3像素邻域与8像素连接到中心像素

当前像素显示在灰色。

三维的连接性

6

像素如果他们的脸碰相连。附近的一个像素的相邻像素:

  • 其中一个方向:,,,,,

3-by-3-by-3像素邻域与6像素与中心像素的脸

当前像素显示在灰色。

18

边缘像素连接如果他们的脸或联系。附近的一个像素的相邻像素:

  • 其中一个方向:,,,,,

  • 两个方向的组合,如完全地或在

3-by-3-by-3像素邻域与6像素连接到脸和12像素与中心像素的边缘

当前像素是立方体的中心。

26

像素连接如果他们的脸、边缘或角落联系。附近的一个像素的相邻像素:

  • 其中一个方向:,,,,,

  • 两个方向的组合,如完全地或在

  • 三个方向的组合,如in-right-up或in-left-down

3-by-3-by-3像素邻域与6像素连接到脸,12像素连接到边缘,和8个像素与中心像素的角落

当前像素是立方体的中心。

更高的维度,分水岭使用默认值conndef(ndims (A),“最大”)

连接也可以定义在一个更一般的方法对于任何维度通过指定3-by-3-by -…3的矩阵0年代和1年代。1价值元素定义社区位置相对的中心元素康涅狄格州。请注意,康涅狄格州必须对其中心对称元素。看到指定自定义连接性为更多的信息。

请注意

如果你指定一个默认的连接,图像边缘的像素可能不被认为是边界像素。例如,如果康涅狄格州= [0 0 0;1 1 1;0 0 0)元素第一和最后一行不认为是边界像素,因为根据连接的定义,它们不是连接到该地区以外的形象。

数据类型:|逻辑

输出参数

全部折叠

标签矩阵,指定为非负整数的数字数组。元素标签0不属于一个独特的分水岭地区。元素标签1属于第一个分水岭地区,标记为2的元素属于第二个分水岭地区,等等。

提示

  • 这个函数使用的分水岭变换算法改变了版本5.4 (R2007a)图像处理工具箱™软件。前面的算法偶尔产生标记分水岭盆地不是连续的。如果您需要获得相同的结果与前面的算法,使用函数watershed_old

  • 为了防止oversegmentation,去除浅从图像通过使用最小值imhmin在你使用的函数分水岭函数。

算法

分水岭算法使用了弗尔南多迈耶[1]

引用

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

扩展功能

版本历史

之前介绍过的R2006a

全部展开