sha*_*are 5 matlab image-processing image-segmentation watershed
我按照Mathworks.com中的2-D Watershed示例分离了连接的对象,如下图所示:

代码总结如下:
bw = imread('some_binary_image.tif');
D = -bwdist(~bw);
D(~bw) = -Inf;
L = watershed(D);
Run Code Online (Sandbox Code Playgroud)
结果是:

中心的颗粒已分成两部分.有什么方法可以避免过度细分吗?
谢谢,lennon310,chessboard对我的大多数图像都有效,但仍然有一些情况没有.例如,以下二进制图像:

使用棋盘将导致:

由于我有数百张图像,似乎很难找到适用于所有图像的一个参数组合.我想知道我是否需要结合使用棋盘,城市街区等获得的好结果......
使用max(abs(x1-x2),abs(y1-y2))的距离度量(棋盘),并且在使用八邻域连接watershed功能:
bw=im2bw(I);
D = -bwdist(~bw,'chessboard');
imagesc(D)
D(~bw) = -Inf;
L = watershed(D,8);
figure,imagesc(L)
Run Code Online (Sandbox Code Playgroud)
结果:
