gpt4 book ai didi

algorithm - 检测二值图像中的圆圈

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:54 24 4
gpt4 key购买 nike

对于检测二值图像中的黑色圆圈,您建议使用什么算法?我正在处理的图像是白色的,还有一些其他物体以及我感兴趣的黑色圆圈。我已经实现了用于圆检测的霍夫变换方法。问题是任何算法可以比霍夫变换快多少?

这些不是完美的圆,而且我只知道它们半径的下限和上限:

enter image description here

最佳答案

您必须先检测形状。这可以通过“连通分量分析”来完成。

要么你有这样一个现成的工具,要么你可以为你的目的制作一个简单的工具:实现一个flood filling algorithm ,并按如下方式使用它:逐行扫描图像,直到遇到黑色像素。然后从这个像素开始填充,涂成白色。这将使形状完全消失。继续扫描。最终图像将完全变白。

当然,如果您不跟踪发生的事情,这将完全没有用。填充形状时,您将跟踪所访问像素的最小/最大横坐标和纵坐标。最后,您将知道形状的边界框。然后,您可以使用这个非常简单的标准来区分矩形和圆形:对于矩形,起始像素是边界框的左上角;不是为了一个圈子。 (实际上,保持最小横坐标就足够了)。

你明白了。如果您处于更复杂的情况下(比如三角形),请遵循以下原则:执行 Blob 检测并测量 Blob 的一些几何特征;使用这些特征(它们称为“ Blob 特征”)来区分您的形状。

更新:

一个非常有判别力的测试可以如下:找到边界框并找到所有轮廓像素。然后对于每个轮廓像素检查 (X-Xc)²/W²+(Y-Yc)²/H²=1/4,即它们位于以边界框为中心并带有轴的椭圆上(W/2,H/2)。由于形状的数字性质,您需要添加 +/-1 像素容差。

关于algorithm - 检测二值图像中的圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26087035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com