【发布时间】:2012-02-26 15:19:09
【问题描述】:
我希望能够处理芒果树的特写图像,以便识别和计数芒果。芒果大致呈椭圆形或椭圆形,与图像中的叶子和树枝截然不同。我希望能够计算可能被其他物体覆盖 20% 的芒果(但对人眼来说仍然很明显。)我相信 MatLab 中有一种算法可以做到这一点,我将不胜感激任何帮助或建议。
【问题讨论】:
标签: matlab image-processing shape image-recognition
我希望能够处理芒果树的特写图像,以便识别和计数芒果。芒果大致呈椭圆形或椭圆形,与图像中的叶子和树枝截然不同。我希望能够计算可能被其他物体覆盖 20% 的芒果(但对人眼来说仍然很明显。)我相信 MatLab 中有一种算法可以做到这一点,我将不胜感激任何帮助或建议。
【问题讨论】:
标签: matlab image-processing shape image-recognition
我认为解决这个问题的更稳健的解决方案是从背景(即树叶)中按颜色分割芒果,并计算得到的二进制图像中connected components 的数量。正如 btown 所指出的,您可以使用bwconncomp 和labelmatrix 函数获得二值图像的连通分量。
要按颜色分割芒果,首先将图像转换为HSV color space,然后使用色调组件执行二值化。我相信芒果的色调成分会与图像的其他部分不同。 This blog post 提供了一些关于如何在 Matlab 中执行此操作的见解。
【讨论】:
也许你可以:
形状因子 - (4 * PI * 面积) / (周长^2)。这给出了一个 关于物体形状的指示。圆的面积最大 周长比,这个公式将接近 1 的值 完美的圆圈。平方约为 0.78。细线状物体 将具有接近 0 的最低形状因子。
圆度 - (周长^2) / 4 * PI * 面积)。这给出了 形状因子的倒数对于那些习惯使用它的人来说。 圆的值略大于或等于 1。其他 形状会增加价值。
所以你可以近似一个“理想”芒果的形状因子,看看是否有任何组件位于近似值之内?
更多详情请见this。
【讨论】: