下面总结了Mathworks.com上的二维分水岭示例:
bw = imread('someImage.tif');
D = -bwdist(~bw);
D(~bw) = -Inf;
L = watershed(D);
我不太清楚为什么D(~bw) = -Inf;
在这里为什么需要将不属于对象的像素强制设置为-Inf(原为零)。
我尝试在没有该语句的情况下运行该程序,结果令人困惑。为什么必须强制将这些像素设置为-Inf才能使分水岭获得正确的结果?
正如Frederick指出的那样,我surf
以前在这里绘制表面,然后运行D(~bw) = -Inf;
,结果是:
运行之后,结果是:
-Inf
增强连接的组件和背景之间的对比度。否则,分水岭很可能将所有背景与单个连接的组件合并到一个区域。实际上,-Inf
设置将完全消除感兴趣区域的背景。-Inf
用样本图像检查对分割的影响。如果设置D(~bw) = 0;
,您将获得:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句