【问题标题】:How do I detect overlapping almost circular objects in MATLAB? [closed]如何在 MATLAB 中检测重叠的几乎圆形对象? [关闭]
【发布时间】:2015-02-22 06:07:59
【问题描述】:

我正在开展一个涉及检测血液中红细胞的项目。血液中的红细胞从来都不是完美的圆形(通常几乎是椭圆形),而且它们经常重叠。

我搜索并找到了许多算法,但大多数只适用于圆圈。然而,就我而言,它需要适用于镰状细胞病患者的血液,其中红细胞是细长的或镰刀形的。供参考here is an example source image

你能提出解决这个问题的算法或方法吗?

任何帮助将不胜感激。

【问题讨论】:

  • 欢迎来到 Stack Overflow。不幸的是,该站点不回答涵盖整个项目的“任何帮助”问题。您的问题需要缩小很多范围 - 成为一个明确且可以直接回答的技术问题。您应该从研究 Matlab 中的图像处理开始。如果您在理解某个主题或为您的项目实施该主题时遇到困难,那么是在 Stack Overflow 上提出相关问题的好时机。
  • 如果我的回答有帮助请记得采纳。谢谢!

标签: algorithm matlab image-processing


【解决方案1】:

正如 cmets 中提到的,这个问题实在是太宽泛了,无法完全回答。不过,我可以给你一些关于如何解决这个问题的建议。

对于初学者,请获取 MATLAB Image Processing toolbox

“识别红细胞”是一项看似简单的任务。任何像这样的项目的第一步是弄清楚你想要实现什么确切,然后开始将它分解成你将如何实现它的步骤。最后,在实验开发阶段,您可以尝试并实施您的计划(意识到问题出在哪里,然后再试一次)。

细胞计数通常使用循环来识别细胞,但这在此处是不可能的,因为您声明要识别镰状细胞。区分红细胞与其他细胞的另一个主要特征是颜色和大小。颜色更绝对,所以从那个开始。然后考虑大小。 This is a good tutorial on the process of identifying cells虽然是Python,但原理是一样的。

所以我们有:

  1. 对图像应用过滤器,隔离红色通道 (RGB) 或更复杂的通道。使其成为单色(我们不需要颜色数据)。
  2. 平滑图像(例如gaussian filter)以减少噪点和伪影
  3. 找到位于单元格中心的regional maxima(希望如此!)
  4. Label the regional maxima(这应该给你单元格的数量)
  5. Watershed 查找整个单元格的尺寸

希望这足以让您入门!

【讨论】:

  • 我已经完成了前两个步骤,目前正在进行第三个步骤。但我不确定我是否理解找到区域最大值如何帮助我们在这里。非常感谢。
  • 如果求区域最大值是统计细胞总数,是不是基于每个细胞只有一个最大值的假设?
  • 乐于助人!区域最大值方法利用了高斯模糊的伪影:区域最大值将成为图像中区域的中心。如果您发现您的图像不够均匀,无法达到这种情况,您可能会发现先应用阈值并将图像二值化(黑白,而不是灰色)很有用。
  • 至于为什么需要最大值:这只是分离重叠单元格的简单方法。如果我们知道每个细胞的中间,我们可以仅通过距离将图像的任何区域分类为与一个或另一个细胞相关联。如果这在镰状细胞上失败了,还有其他选择!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-25
  • 2013-12-22
相关资源
最近更新 更多