【问题标题】:Detecting centers of circles from camera images从相机图像中检测圆心
【发布时间】:2016-09-14 01:42:19
【问题描述】:

所以我正在开发一个 Ionic 应用程序,它使用手机摄像头检测织物上的圆圈,如下图所示:

最大尺寸为 3x3 网格,有 4 种不同颜色(浅蓝色、深蓝色、浅绿色和深绿色)。基本上,我将问题分解为 3 个步骤:

  1. 获取每个圆的中心。
  2. 获取每个圆圈中心的颜色
  3. 使用每个圆心的位置,将图案表示为二维数组

我的问题是找出实现步骤 1 的最佳方法。我研究了 Hough 变换,但找不到非常好的 Javascript 资源。如果有比使用霍夫变换更简单或更好的方法,我将非常感激。

【问题讨论】:

  • 请问那个软件的用途是什么?如果这些斑点设计用于被相机检测到,那么它们是一个非常糟糕的设计。顺便说一句,它们几乎不是圈子。扭曲,从一个角度看......对霍夫变换不是很好。您应该使用标记算法并使用它们的质心。
  • 每个模式代表一个故事。用户扫描点状图案,就会显示与该故事相关的图案。
  • 您不使用常见二维码的任何特殊原因?或者使用不同的形状而不是不同的颜色也会大大提高鲁棒性。

标签: image-processing ionic-framework hough-transform


【解决方案1】:

您可以将图像分割与分水岭算法一起使用,该算法在 here

【讨论】:

  • 所以你链接到 OpenCV。这与 Ionic/Angular 兼容吗?
【解决方案2】:

在这种类型的图像中,你可以这样做:

  1. 颜色阈值以找到每个模式
  2. (可选)打开 + 关闭,以便在阈值处理结果不完美时稍微清理一下图像。
  3. 连接组件标记(请参阅联合查找算法)以分离每个组件。
  4. 然后你就有了所有的图案,所以你可以很容易地找到中心和颜色。

【讨论】:

  • 如何在 Angular/Ionic 的上下文中执行此操作?什么库/技术将与此方法兼容?
  • 几乎每个图像处理库都应该支持这些方法
  • 对不起,我没有使用ionic,但是这些操作在图像处理中绝对是标准的,并且在大多数库中都有实现。我希望其中一些与 Piglet 一样兼容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-27
  • 2016-02-13
相关资源
最近更新 更多