这是我目前的解决方案:
im = imread('im.tif');
bw = im2bw(im, 0.1);
D = bwdist(~bw);
D = -D;
D(~bw) = Inf;
L = watershed(D, 8);
L(~bw) = 0;
rgb = label2rgb(L,'jet',[0 0 0]);
bw = im2bw(rgb, 0);
imshow(bw);
然而,我不知道如何摆脱对单一完整斑点的解剖,例如,右上角被解剖成2块,当它根本不应被解剖时。我在分水岭功能中寻找一些阈值。但没有成功。默认(和最低)阈值是4个连接组件,这就是上面代码使用的。即使这样,它也会划分整个blob。有没有办法进一步微调这个?