形状识别 - 计数芒果

时间:2012-02-04 03:55:55

标签: matlab image-processing shape image-recognition

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

2 个答案:

答案 0 :(得分:4)

我认为针对该问题的更强大的解决方案是通过颜色对来自背景的芒果(即树叶)进行分段,并计算得到的二进制图像中的connected components的数量。正如btown指出的那样,您可以使用bwconncomplabelmatrix函数获取二进制图像的连通分量。

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

答案 1 :(得分:1)

也许你可以:

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

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

         

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

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

    有关详细信息,请参阅this