【问题标题】:Matlab - Identifying objects in one image that overlap objects in anotherMatlab - 识别一幅图像中与另一幅图像重叠的对象
【发布时间】:2014-11-13 16:36:43
【问题描述】:

我有两张图像,一张是一些细胞,另一张是这些细胞的细胞核。我将这些图像分割成两个二进制图像/矩阵。我想删除不包含细胞核的细胞轮廓,以及与细胞簇相对应的细胞和细胞核(即包含多个细胞核的细胞轮廓)。

我真的想不通...我可以使用 bwlabel 来制作对象的标记数组:

[cell, cellnum] = bwlabel(cells,8);
[nuc, nucnum] = bwlabel(nuclei,8);

如何比较这两个数组以得到一个新数组,其中只包含一个细胞核和另一个细胞核对应的细胞核?

【问题讨论】:

  • 分享相关图片并对此进行解释?分享图片,您可以上传到一些公共图片分享网站并在此处链接。

标签: image matlab object image-processing


【解决方案1】:

您可以做的一件事是遍历您在cells 二进制图像(概念性、未经测试的代码)中识别的集群:

for k=1:cellnum
    [~, nucnum(k)]=bwlabel(nuclei.*(cell==k));
end

nucnum 是一个向量,其中包含在每个细胞内发现的细胞核数量。根据您的需要过滤。

我推荐这篇关于细胞和细胞核分割主题的博文:http://blogs.mathworks.com/steve/2006/06/02/cell-segmentation/

【讨论】:

  • 好的,看起来可能是票。这里发生了什么事?我们将nuclei 图像数组乘以单个cell 子区域,然后将其放入“nucnum”数组中? ...波浪号是否意味着我们正在跳过实际的区域标签?
  • 确实可以,感谢您的帮助。我没有意识到我可以将图像操作作为 bwlabel 等函数的参数 - 这让我的代码更加整洁!
  • 您好,我可以再问一个问题吗?为什么nucnum 引用k 那里?
  • @Olly 使用此语法,nuncum 是一个向量,每次执行循环时(在第 k 个位置)都会获取一个附加元素。如果你在没有它的情况下运行循环,它会在每次执行时覆盖nuncum 的值,你将只剩下最后一个值。
  • 谢谢。之后我试图在集群上执行 pca,但并没有真正到达任何地方:for k=1:cellnum [l, nucnum]=bwlabel(nuclei.*(cell==k))​​;如果 nucnum == 1 [系数,分数] = princomp(l); end end 但这并没有像我预期的那样真正起作用......变成零页。作为一种方法,这是否有意义?
猜你喜欢
  • 2013-02-19
  • 1970-01-01
  • 1970-01-01
  • 2020-03-30
  • 1970-01-01
  • 2019-02-27
  • 2016-12-11
  • 2018-03-28
  • 1970-01-01
相关资源
最近更新 更多