首页 > 解决方案 > 如何识别这个复杂图像中的粒子?

问题描述

我已经尝试 Python+OpenCV 很长时间了,并遵循了许多教程来识别下图中的粒子:

粒子

我的最终目标是识别每个粒子,从那里我将能够计算粒子的数量,计算尺寸分布等。

我已经尝试在几个站点中自定义许多示例。我得到了很好的提示,基于:

  1. 如何在 OpenCV 中定义分水岭的标记?
  2. 在 python 中使用图像处理计数粒子

虽然我没能取得不错的成绩。

如何使用 Python 和 OpenCV 识别此图像中的粒子?

标签: pythonopencvimage-processingimage-segmentationwatershed

解决方案


IMO,获得有意义结果的唯一希望是利用粒子是圆形的事实。通过使用一些同质性标准,您可以找到候选粒子中心,并从中生长轮廓,使其保持圆形并在边缘停止。一个选项可以是从种子点绘制光线,找到最近的边缘点并使用圆或椭圆的稳健拟合。

拒绝与圆度相差太远的形状。这应该允许您找到未遮挡的粒子。然后您可以从其他种子点继续游戏,这一次会增长可能被已检测到的粒子遮挡的轮廓。(当边缘被击中时,如果已知它属于粒子,则忽略它。)


推荐阅读