【问题标题】:Simple circle detection model简单的圆检测模型
【发布时间】:2018-07-10 21:35:32
【问题描述】:

我有一组 100x100 像素的深色背景上的光“点”照片。它们看起来像这样:

如您所见,它们没有完全居中,边界不完美,有时还会出现次要瑕疵。但是,感兴趣的对象总是相当大(> 面积的 1/10)并且或多或少是圆形的。

我想知道每个点的大小。

从每个 100x100 的图块中选取 100 个随机像素后,我能够通过计算 Z 分数与背景来选择属于斑点的像素,然后只保留 Z>3 的像素。然后我可以计算质心(以 x/y 坐标和 Z 作为质量)以获得每个点的中心的近似值。但是,我不确定如何检测它们的直径。

我想过简单地在最外面的明亮像素周围画一个圆圈,然后在有瑕疵的情况下,我会以一个过大的圆圈结束。显然,我需要一个更好地适应误报的模型(即明亮但不属于该点的像素)。有没有一种数学上简单的方法(即不是复杂的 SVM 方法)?结果应该是这样的(如果我们将其可视化):

【问题讨论】:

  • 嗨 Wassinger,这可能更适合处理信号和图像处理问题的 dsp.stackexchange.com 站点。
  • 你可以试试this

标签: image-processing language-agnostic feature-detection


【解决方案1】:

这应该可以完成工作:

  1. 使用阈值转换为二值图像
  2. 执行适当数量的erosion 操作以去除瑕疵或至少将它们与斑点分开
  3. 执行相同数量的dilation 操作以恢复斑点的原始大小。
  4. 对于每个连接的白色像素区域,计算质心并计算像素数以估计半径。
  5. 忽略像素太少的区域。

您可以添加额外的检查以确保区域大致为圆形。例如,您可以检查每个边界像素与质心之间的距离是否在一定范围内。

【讨论】:

  • 优秀的简单解决方案。
猜你喜欢
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2013-09-12
相关资源
最近更新 更多