我已经在很长一段时间内尝试使用Python + OpenCV,并按照许多教程来识别下图中的粒子:
我的最终目标是识别每个粒子,从那里我将能够例如计算粒子数,计算粒度分布等。
我已经尝试过多个站点的自定义示例。我得到了很好的提示:
虽然我无法取得不错的成绩。
如何使用Python和OpenCV识别此图像中的粒子?
IMO,获得有意义结果的唯一希望是使用颗粒为圆形的事实。通过使用一些同质性标准,您可以找到候选粒子中心,并从这些中心生长轮廓,使它们保持圆形并停在边缘。一个选项可以是从种子点绘制光线,找到最近的边缘点并使用圆形或椭圆形的稳健拟合。
拒绝与圆度相差太远的形状。这应该允许您找到未被遮挡的粒子。然后你可以从其他种子点继续游戏,这次增长的轮廓可以被已经检测到的粒子遮挡。 (当边缘被击中时,如果已知它属于粒子,则忽略它。)