如何在 MATLAB 中检测几乎重叠的圆形对象?
How do I detect overlapping almost circular objects in MATLAB?
我正在进行一个项目,该项目涉及检测血液中的红细胞。血液中的红细胞从来都不是完美的圆形(通常几乎是椭圆形的)并且它们经常重叠。
我搜索并找到了多种算法,但大多数算法仅适用于圆圈。然而,在我的例子中,它需要对来自镰状细胞病患者的血液起作用,在这种情况下,红细胞会被拉长或呈镰刀状。供参考here is an example source image.
你能提出解决这个问题的算法或方法吗?
如有任何帮助,我们将不胜感激。
正如评论中所说,这个问题实在是太宽泛了,无法完全回答。不过,我可以为您提供一些解决方法。
对于初学者,请自己获取 MATLAB Image Processing toolbox。
"Identify red blood cells" 是一个看似简单的任务。任何此类项目的第一步都是弄清楚 确切 您想要实现的目标,然后开始将其分解为实现目标的步骤。最后,是实验开发阶段,您可以在此阶段尝试实施您的计划(意识到它有什么问题,然后再试一次)。
细胞计数通常使用循环度来识别细胞,但这里不可能,因为您声明要识别镰状细胞。将红细胞与其他细胞区分开来的其他主要特征是颜色和大小。颜色更绝对,所以从那个开始。然后考虑尺寸。 This is a good tutorial on the process of identifying cells虽然是在Python,原理是一样的
所以我们有:
- 对您的图像应用滤镜,隔离红色通道 (RGB) 或更复杂的东西。使其成为单色(我们不需要颜色数据)。
- 平滑图像(例如gaussian filter)以减少噪点和伪像
- 找到 regional maxima 个(希望如此!)在单元格的中心
- Label the regional maxima(这应该给你单元格的数量)
- Watershed 找到整个单元格的度量大小
希望这足以让您入门!
我正在进行一个项目,该项目涉及检测血液中的红细胞。血液中的红细胞从来都不是完美的圆形(通常几乎是椭圆形的)并且它们经常重叠。
我搜索并找到了多种算法,但大多数算法仅适用于圆圈。然而,在我的例子中,它需要对来自镰状细胞病患者的血液起作用,在这种情况下,红细胞会被拉长或呈镰刀状。供参考here is an example source image.
你能提出解决这个问题的算法或方法吗?
如有任何帮助,我们将不胜感激。
正如评论中所说,这个问题实在是太宽泛了,无法完全回答。不过,我可以为您提供一些解决方法。
对于初学者,请自己获取 MATLAB Image Processing toolbox。
"Identify red blood cells" 是一个看似简单的任务。任何此类项目的第一步都是弄清楚 确切 您想要实现的目标,然后开始将其分解为实现目标的步骤。最后,是实验开发阶段,您可以在此阶段尝试实施您的计划(意识到它有什么问题,然后再试一次)。
细胞计数通常使用循环度来识别细胞,但这里不可能,因为您声明要识别镰状细胞。将红细胞与其他细胞区分开来的其他主要特征是颜色和大小。颜色更绝对,所以从那个开始。然后考虑尺寸。 This is a good tutorial on the process of identifying cells虽然是在Python,原理是一样的
所以我们有:
- 对您的图像应用滤镜,隔离红色通道 (RGB) 或更复杂的东西。使其成为单色(我们不需要颜色数据)。
- 平滑图像(例如gaussian filter)以减少噪点和伪像
- 找到 regional maxima 个(希望如此!)在单元格的中心
- Label the regional maxima(这应该给你单元格的数量)
- Watershed 找到整个单元格的度量大小
希望这足以让您入门!