WatershedComponents[image]
计算 image 的分水岭变换,以数组的形式返回计算结果,并以正整数标记分水岭.
WatershedComponents[image,marker]
使用二值图像 marker 标注可能会出现盆地的区域.
WatershedComponents[video,…]
计算 video 各帧的分水岭分割.
WatershedComponents
WatershedComponents[image]
计算 image 的分水岭变换,以数组的形式返回计算结果,并以正整数标记分水岭.
WatershedComponents[image,marker]
使用二值图像 marker 标注可能会出现盆地的区域.
WatershedComponents[video,…]
计算 video 各帧的分水岭分割.
更多信息和选项
- WatershedComponents,亦称为分水岭变换,是一种图像分割算法,可分割被包围在较亮的脊线之间的低强度区域(盆地).
- WatershedComponents[image] 在 image 中找到每个区域最小的盆地.
- WatershedComponents 适用于 2D 和 3D 图像以及视频输入.
- WatershedComponents 适用于二值图像、灰度图像以及其他形式的图像.
- 在返回的标签数组中,零表示不属于任何前景分量的位置.
- WatershedComponents[image,marker] 只查找对应于二值图像 marker 中的前景区域位置的盆地.
- 目标区域 marker 可为以下任何一个:
-
markerimage 标记图像 {pos1,pos2,…} 位置列表 - 假定位置 posi 在标准图像坐标系.
- 一般来说,marker 中非零元素被处理为分割的种子.
- 可指定以下选项:
-
CornerNeighbors Automatic 是否计入角上的邻居 Method Automatic 要用到的方法 - 可能的 Method 设置包括:
-
"Watershed" 形态分水岭法(Meyer)(默认) "Basins" 修正分水岭算法(Beucher, Meyer) "Rainfall" 梯度下降或降水算法(Osma-Ruiz) "Immersion" 分水岭浸没算法(Vincent–Soille) {"MinimumSaliency",t} 梯度下降算法,如果最小边界高度小于 t,则合并毗邻的盆地 - "Watershed" 与 "Immersion" 的方法将会返回分水线, 在标记数组中用零表示.
- "MinimumSaliency" 方法始终要用 CornerNeighbors->False. 所有其他的方法默认用 CornerNeighbors->True.
范例
打开所有单元 关闭所有单元基本范例 (2)
范围 (3)
WatershedComponents[[image], [image]]//ColorizeWatershedComponents[[image], {{190, 180}, {190, 45}}]//Colorizei = [image];marker = [image];ws = WatershedComponents[i, marker];
Image3D[Colorize[SelectComponents[ws, "Count", 2]], Options[i, BoxRatios]]选项 (3)
CornerNeighbors (2)
WatershedComponents[[image]]//Colorize用 CornerNeighborsFalse 时,只有垂直和水平相邻的邻近像素被认为是邻居:
WatershedComponents[[image], CornerNeighbors -> False]//Colorize用 Method->"MinimumSaliency" 方法时,忽略 CornerNeighbors 设置:
img = [image];WatershedComponents[img, Method -> {"MinimumSaliency", .2}, CornerNeighbors -> True] == WatershedComponents[img, Method -> {"MinimumSaliency", .2}, CornerNeighbors -> False]Method (1)
img = ColorNegate@[image];WatershedComponents[img, Method -> {"MinimumSaliency", .3}]//ColorizeWatershedComponents[img, Method -> {"MinimumSaliency", 0}]//ColorizeWatershedComponents[img, Method -> {"MinimumSaliency", .4}]//Colorize应用 (8)
img = [image];dt = ImageAdjust[ColorNegate[DistanceTransform[img]]]ImageMultiply[img, Image[WatershedComponents[dt], "Bit"]]image = [image];iw = ColorNegate@ImageAdjust@DistanceTransform@image;cw = WatershedComponents[iw];
cw *= ImageData[image];
Colorize[cw]markers = [image];cwm = WatershedComponents[iw, markers];
cwm *= ImageData[image];
Colorize[cwm]Image[WatershedComponents[Threshold[[image], 0.18]] , "Bit"]img = [image];markers = MaxDetect[GaussianFilter[img, 25], Padding -> 1];
HighlightImage[img, markers, Method -> {"DiskMarkers", 5}]WatershedComponents[GradientFilter[img, 3], markers]//Colorizeimg = [image];WatershedComponents[FillingTransform[ColorNegate[img], 0.2, Padding -> 1]]//Colorize结合 GradientFilter 与 FillingTransform 来分割图像:
WatershedComponents[FillingTransform[GradientFilter[[image], 1], 0.05, Padding -> 1]]//Colorizei = [image];segs = WatershedComponents[DistanceTransform[i]];
Colorize[segs]HighlightImage[Image[segs, "Bit"], {Opacity[1], ColorNegate[i]}]Image[WatershedComponents[Threshold[[image], 0.6]] , "Bit"]属性和关系 (2)
方法 "Basins", "Rainfall",以及 "MinimumSaliency" 把所有的像素分配给一个盆地:
img = [image];Table[WatershedComponents[img, Method -> method]//Colorize, {method, {"Basins", "Rainfall", {"MinimumSaliency", 0}}}]方法 "Watershed" 和 "Immersion" 计算分水岭线:
Table[WatershedComponents[img, Method -> method]//Colorize, {method, {"Watershed", "Immersion"}}]WatershedComponents[img]//Colorizeimg = [image];
Colorize[WatershedComponents[img], ImageSize -> 100]方法 "MinimumSaliency" 把所有的高原像素分配给同一个部分:
Colorize[WatershedComponents[img, Method -> {"MinimumSaliency", 0}], ImageSize -> 100]可能存在的问题 (1)
文本
Wolfram Research (2010),WatershedComponents,Wolfram 语言函数,https://reference.wolfram.com/language/ref/WatershedComponents.html (更新于 2025 年).
CMS
Wolfram 语言. 2010. "WatershedComponents." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2025. https://reference.wolfram.com/language/ref/WatershedComponents.html.
APA
Wolfram 语言. (2010). WatershedComponents. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/WatershedComponents.html 年
BibTeX
@misc{reference.wolfram_2026_watershedcomponents, author="Wolfram Research", title="{WatershedComponents}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/WatershedComponents.html}", note=[Accessed: 01-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_watershedcomponents, organization={Wolfram Research}, title={WatershedComponents}, year={2025}, url={https://reference.wolfram.com/language/ref/WatershedComponents.html}, note=[Accessed: 01-November-2026]}