在低分辨率灰度图像中找到重叠圆的中心
Finding the centers of overlapping circles in a low resolution grayscale image
我目前正在迈出计算机视觉和图像处理领域的第一步。
我正在处理的任务之一是找到(重叠和遮挡的)圆的中心坐标。
这是一张示例图片:
这是另一个显示两个重叠圆圈的示例图片:
关于问题的更多信息:
- 始终是单色灰度图像
- 相当低分辨率的图片
- 圆的半径未知
- 给定图像中的圆圈数未知
- 圆心待定,最好是亚像素精度
- 不必确定半径
- 算法开销相对较低很重要;应该使用实时相机图像进行处理
对于第一个示例图像,通过找到质心来计算圆心相对容易。不幸的是,这不适用于第二张图片。
我尝试的东西主要基于圆霍夫变换和距离变换。
Circle Hough 变换似乎在计算上相对昂贵,因为我没有关于半径的信息并且可能的半径范围很大。此外,由于图像的分辨率较低,似乎很难沿着边缘识别(适当的)像素。
至于距离变换,我很难确定圆心,而且图像需要二值化意味着一定程度的信息损失。
现在我正在寻找上述算法的可行替代方案。
更多示例图片(如上两张示例图片是从如下图片中提取的):
只是大声思考,试着让球为你滚动……我会考虑 Blob
或 Connected Component
分析来分离你的斑点。
然后我会开始单独查看每个 blob。首先是查看每个斑点的边界框有多方。如果它是 pretty square AND blob 的质心在正方形的中心,那么你有一个圆。如果它不是正方形,或者质心不在中心,那么你就多了一个圆。
现在我要开始查看白色区域与边界框边缘的接触位置,以寻找有关中心位置的一些线索...
我目前正在迈出计算机视觉和图像处理领域的第一步。
我正在处理的任务之一是找到(重叠和遮挡的)圆的中心坐标。
这是一张示例图片:
这是另一个显示两个重叠圆圈的示例图片:
关于问题的更多信息:
- 始终是单色灰度图像
- 相当低分辨率的图片
- 圆的半径未知
- 给定图像中的圆圈数未知
- 圆心待定,最好是亚像素精度
- 不必确定半径
- 算法开销相对较低很重要;应该使用实时相机图像进行处理
对于第一个示例图像,通过找到质心来计算圆心相对容易。不幸的是,这不适用于第二张图片。
我尝试的东西主要基于圆霍夫变换和距离变换。
Circle Hough 变换似乎在计算上相对昂贵,因为我没有关于半径的信息并且可能的半径范围很大。此外,由于图像的分辨率较低,似乎很难沿着边缘识别(适当的)像素。
至于距离变换,我很难确定圆心,而且图像需要二值化意味着一定程度的信息损失。
现在我正在寻找上述算法的可行替代方案。
更多示例图片(如上两张示例图片是从如下图片中提取的):
只是大声思考,试着让球为你滚动……我会考虑 Blob
或 Connected Component
分析来分离你的斑点。
然后我会开始单独查看每个 blob。首先是查看每个斑点的边界框有多方。如果它是 pretty square AND blob 的质心在正方形的中心,那么你有一个圆。如果它不是正方形,或者质心不在中心,那么你就多了一个圆。
现在我要开始查看白色区域与边界框边缘的接触位置,以寻找有关中心位置的一些线索...