如何计算具有重叠和叠加的球形粒子的粒径?(包括示例图像)
信息处理
图像处理
计算机视觉
霍夫变换
形状分析
粒子过滤器
2022-02-08 20:24:17
1个回答
这是我尝试过的:
使用ELSD生成椭圆轮廓。您基本上可以使用任何边缘检测器,但由于在接下来的阶段我将受益于圆形检测器,因此最好已经有一些几何边缘。这是输出的样子:
我将这个图像表示为.
我们现在将计算该图像的圆形霍夫变换。然而,有许多不同半径的球体(看起来是圆形的)。因此,我们选择一个范围是每个霍夫变换的预期半径。伪代码如下所示:
,
对全部 ()
{x, y} = hough_circles(,)
根据累加器的峰值,霍夫可能会报告多个中心位置。一个简单的聚类可能有助于避免这种情况(只需平均附近的中心)。
最终的图像与最终的中心重叠(以不同的颜色),看起来像:
您可以自定义半径以适应不同的圆。此外,可以使用椭圆霍夫变换来更好地覆盖粒子(因为其中一些不是圆形的)。最后,即使在距离变换的帮助下,也可以在屏蔽掉小圆圈后获得被大量遮挡的大圆圈。如果希望消除假圆假设,您始终可以降低霍夫灵敏度。或者您可以始终渲染圆的轮廓并与检测到的边缘进行比较。
其它你可能感兴趣的问题