如何计算具有重叠和叠加的球形粒子的粒径?(包括示例图像)

信息处理 图像处理 计算机视觉 霍夫变换 形状分析 粒子过滤器
2022-02-08 20:24:17

我正在尝试自动计算像这样的图像的粒子大小直方图:

图像示例:具有重叠和叠加的球体粒子

通用阈值和分段似乎不起作用。您建议使用哪些过滤器和算法?

1个回答

这是我尝试过的:

  1. 使用ELSD生成椭圆轮廓。您基本上可以使用任何边缘检测器,但由于在接下来的阶段我将受益于圆形检测器,因此最好已经有一些几何边缘。这是输出的样子:                                                            在此处输入图像描述

  2. 通过将通道收集到单个图像中来收集所有圆形(也是非圆形)边缘。这也可以通过简单的阈值处理来完成。同样,输出看起来像:                                                            在此处输入图像描述

我将这个图像表示为C.

  1. 我们现在将计算该图像的圆形霍夫变换然而,有许多不同半径的球体(看起来是圆形的)。因此,我们选择一个范围r={9,12,15..150}是每个霍夫变换的预期半径。伪代码如下所示:

       cx ,cy

       对全部 (rir){

          {x, y} = hough_circles(C,ri)

          cx{cxx}

          cy{cyy}

       }

根据累加器的峰值,霍夫可能会报告多个中心位置。一个简单的聚类可能有助于避免这种情况(只需平均附近的中心)。

最终的图像与最终的中心重叠(以不同的颜色),看起来像:

在此处输入图像描述

您可以自定义半径以适应不同的圆。此外,可以使用椭圆霍夫变换来更好地覆盖粒子(因为其中一些不是圆形的)。最后,即使在距离变换的帮助下,也可以在屏蔽掉小圆圈后获得被大量遮挡的大圆圈。如果希望消除假圆假设,您始终可以降低霍夫灵敏度。或者您可以始终渲染圆的轮廓并与检测到的边缘进行比较。