正如上图所示,我在分割后得到了一张图像的边界。但我只是得到了逻辑边界,我想标记被分段分割的每个区域。函数 bwlabel 不起作用,它只能标记连接区域。那么,我如何标记这 200 个区域?
问问题
482 次
1 回答
0
如果您的原始图像称为img并且您当前的 bw 分段图像称为I,我建议:
I = (I==0); % invert the image
cc = bwconncomp(I,8); % could use 4-connected neighborhood also
s = regionprops(cc,img,'all');
最后一行将为每个分割区域提供原始图像中的所有可用属性(如果需要)。你可以使用你提到的bwlabel,但我认为bwconncomp可能更快/更有效。
用于标记的bwlabel的替代方法是:
L = labelmatrix(cc);
然后我喜欢使用label2rgb查看段:
RGB_label = label2rgb(L, @jet, 'k', 'shuffle');
imshow(RGB_label);
这将根据提供的颜色图(在本例中为 jet)随机为每个段着色。
于 2012-09-06T04:12:13.157 回答