You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含噪二值图像内点圆拟合算法咨询:适配各类圆缺陷的鲁棒方案

问题:含噪二值图像内圆的鲁棒拟合算法

我有一张含噪二值图像,其中多数白点位于一个圆内。需要具备鲁棒性、能处理圆各类缺陷的拟合算法。

示例图像:
示例图像

原始图像:
原始图像

已尝试的方法

  • Hough圆变换:鲁棒性不足
  • 膨胀操作后寻找凸包并拟合圆:鲁棒性不足
  • 常规圆拟合算法:仅能拟合圆周上的点,无法处理圆内点
  • 计算白点间的两两距离生成直方图,用Otsu算法找对应圆直径的阈值:因点数达数万,计算速度过慢

图像预处理步骤

  • 转为灰度图
  • 识别并移除过暗像素(主要是两条黑色曲线,不可作为圆检测的线索),替换为图像灰度中值
  • 采用反向Otsu阈值进行二值化
  • 填充孔洞:在此图像中效果不明显,但对圆内内容更密集的图像帮助很大

推荐的鲁棒圆拟合方案

1. 适配圆内点的RANSAC圆拟合

不需要局限于圆周点,直接利用所有白点做鲁棒拟合:

  • 每次随机选取3个白点,拟合一个临时圆
  • 统计所有白点中到该圆的距离小于设定阈值(比如半径的5%-10%)的点数量,作为内点计数
  • 重复采样足够次数(如1000次),保留内点数量最多的圆作为候选
  • 最后用该候选圆的所有内点重新做最小二乘拟合,优化圆心坐标和半径

这种方法天然抗噪,能忽略零散噪点,圆内的点同样能提供有效判断依据。

2. 距离变换+峰值检测

利用圆内点到边界的距离特性快速定位:

  • 对二值图像做距离变换,每个白点的距离值为其到最近黑点的距离
  • 圆内的距离值会围绕圆心呈现对称分布,圆心对应距离变换图的峰值点
  • 找到峰值点作为圆心后,统计所有白点到该点的距离,用中位数或众数作为半径(这两个统计量抗噪性远优于均值)

距离变换的计算复杂度为O(n),处理数万点速度很快,适合大规模数据场景。

3. 离群点过滤+最小外接圆拟合

先清理噪点再用几何方法求解:

  • 用DBSCAN聚类算法对所有白点聚类,过滤掉零散的小噪点簇
  • 对剩余的主簇点,用Welzl算法计算最小外接圆,这个圆能包裹绝大多数有效内点
  • Welzl算法的时间复杂度接近线性,处理数万点效率很高

相比单纯的凸包拟合,先过滤离群点能大幅提升鲁棒性。

4. 加权最小二乘拟合(针对圆内点场景)

修改常规最小二乘的目标函数,适配圆内点:

  • 定义误差为点到圆心的距离与半径的差的绝对值,给距离接近半径的点赋予更高权重,距离过小的点降低权重
  • 通过迭代加权的方式求解,每次迭代根据点到当前圆的距离调整权重,逐步收敛到最优圆

这种方法能兼顾圆周点和圆内点的信息,同时抑制离群噪点的影响。


内容的提问来源于stack exchange,提问作者hillin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 04:25:19