史蒂夫(Steve)与MATLAB进行图像处理

图像处理概念,算法和MATLAB

几乎连接的组件标签

在一个最近贴文我证明了使用BWDIST(二进制图像欧几里得距离变换)以执行各向同性扩张。这是受到某些东西的启发布雷特问我。

昨晚布雷特发表评论对他在做什么进行更多解释。我要为布雷特所描述的术语造成一个术语:几乎连接的组件标签

我将用一个简单的合成图像说明,其中包含许多圆形斑点。

URL ='https://blogs.mathworks.com/images/steve/2010/blobs_in_clumps.png';bw = imread(url);imshow(BW)

现在让我们标记连接的组件BW

CC = BWConnComp(BW)
cc =连接:8图像:[337 313] numObjects:23 pixelidxlist:{1x23 cell}

您可以看到检测到23个不同的对象。功能Label2RGB对于可视化连接的组件很有用。您可以通过转换输出来使用它BWConnComp使用标签矩阵使用LabelMatrix然后将结果传递给Label2RGB

L = LabelMatrix(CC);rgb = label2rgb(l,'喷射',[.7 .7 .7],“洗牌”);IMShow(RGB)

布雷特的问题是:我们如何标记和测量三个团而不是较小的圆圈?(团块是Brett问题中的细胞簇。)答案是将各向同性扩张步骤与连接的组件标记结合在一起。

假设两个圆圈在彼此之间的25个像素单位之内,则两个圆圈是“几乎连接的”。因此,从各向同性扩张步骤开始:

bw2 = bwdist(bw)<= 12.5;imshow(BW2)

现在我们可以在BW2

l2 = labelmatrix(bwconncomp(bw2));rgb2 = label2rgb(l2,'喷射',[.7 .7 .7],“洗牌”);IMShow(RGB2)

我们现在有三个团,但是它们太“胖”了。也就是说,由于各向同性扩张步骤,它们中有太多像素。因此,例如,如果我们使用地区企业

s = regionprops(l2,'区域');[s. area]
ANS = 14418 11023 6341

我们得到了扭曲的区域测量。如果我们只想在原始团块中的像素上进行测量怎么办?

一个很好的应用逻辑索引将修改L2摆脱添加的像素。以下行设置为0的所有元素L2对应于背景像素BW

l2(〜bw)= 0;imshow(label2rgb(l2,'喷射',[.7 .7 .7],“洗牌”))
s = regionprops(l2,'区域');[s. area]
ANS = 4827 3510 2208

您是否有“几乎连接组件标签”的应用程序?在这里发表您的评论。

PS。嘿,如果您没有注意到,R2010B发布不在。我会尽快发布一些信息。




以MATLAB®7.10出版

|
  • 打印
  • 发送电子邮件

评论

要发表评论,请单击这里登录您的数学帐户或创建一个新帐户。