【问题标题】:Shape Recognition - counting mangoes形状识别 - 数芒果
【发布时间】:2012-02-26 15:19:09
【问题描述】:

我希望能够处理芒果树的特写图像,以便识别和计数芒果。芒果大致呈椭圆形或椭圆形,与图像中的叶子和树枝截然不同。我希望能够计算可能被其他物体覆盖 20% 的芒果(但对人眼来说仍然很明显。)我相信 MatLab 中有一种算法可以做到这一点,我将不胜感激任何帮助或建议。

【问题讨论】:

标签: matlab image-processing shape image-recognition


【解决方案1】:

我认为解决这个问题的更稳健的解决方案是从背景(即树叶)中按颜色分割芒果,并计算得到的二进制图像中connected components 的数量。正如 btown 所指出的,您可以使用bwconncomplabelmatrix 函数获得二值图像的连通分量。

要按颜色分割芒果,首先将图像转换为HSV color space,然后使用色调组件执行二值化。我相信芒果的色调成分会与图像的其他部分不同。 This blog post 提供了一些关于如何在 Matlab 中执行此操作的见解。

【讨论】:

【解决方案2】:

也许你可以:

  1. 预处理图像(灰度/阈值等)。
  2. 从二进制图像中提取所有计数/连通分量。
  3. 计算每个轮廓/连接组件的面积和周长。
  4. 使用以下方法计算形状因子/圆度:

形状因子 - (4 * PI * 面积) / (周长^2)。这给出了一个 关于物体形状的指示。圆的面积最大 周长比,这个公式将接近 1 的值 完美的圆圈。平方约为 0.78。细线状物体 将具有接近 0 的最低形状因子。

圆度 - (周长^2) / 4 * PI * 面积)。这给出了 形状因子的倒数对于那些习惯使用它的人来说。 圆的值略大于或等于 1。其他 形状会增加价值。

所以你可以近似一个“理想”芒果的形状因子,看看是否有任何组件位于近似值之内?

更多详情请见this

【讨论】:

  • 在这种特定情况下使用形状测量可能有点困难,因为某些物体(芒果)可能会被树叶部分遮挡。
  • 真;您可以将这种方法与您的方法一起使用,通过返回并获取给定不规则“潜在芒果”轮廓位置的色调信息来验证不规则形状(模糊的芒果)。事实上,您可以对所有轮廓执行此操作以进行验证。不过,您必须事先知道芒果的色调值范围。为您的方法 +1!
猜你喜欢
  • 2012-07-25
  • 1970-01-01
  • 2022-12-01
  • 1970-01-01
  • 2011-12-28
  • 1970-01-01
  • 2011-07-29
  • 2016-04-22
  • 1970-01-01
相关资源
最近更新 更多