【问题标题】:How to Count number Objects in an Image identify by Color in Matlab如何在 Matlab 中通过颜色识别图像中的数字对象
【发布时间】:2011-11-04 00:06:53
【问题描述】:

我想计算图像中每种颜色标识的对象数量。

示例:我想计算图像中的黄米或绿米。

你能给我一些建议吗?

【问题讨论】:

标签: matlab image-processing computer-vision


【解决方案1】:

您已从 MATLAB 的 Image Processing Toolbox 随附的 rice demonstration 中获取此图像。如果您通读演示,您已经有了一些代码可以单独隔离每个米粒 - 这就是创建图像的方式。

至于计算具有特定颜色(例如黄色或绿色)的谷物数量,请再次阅读演示:很明显,米粒不是用黄色或绿色(或橙色或粉红色)。相反,米粒颜色是专门创建的,因此它们在整个颜色图中等距分布spring

因此,要继续您的任务,您将不得不提供一些“黄色”或“绿色”的定义,也许是在特定的 RGB 值范围内。

完成此操作后,您可以将变量labeled(在演示中为您构建)与regionprops 命令一起使用,为您提供每个米粒边界内的像素列表。只需将这些像素与您对黄色或绿色的定义进行比较,就可以了。

【讨论】:

【解决方案2】:

假设您在矩阵a(大小为m*n*3)中有一个图像,并且您想要找到颜色为[r,g,b] 的对象的数量。

首先,只选择颜色正确的像素:

bb = (a(:,:,1) == r & a(:,:,2) == g &a(:,:,3) == b);

比:

[~,num] = bwlabel(bb,8)

num 是对象的数量。

【讨论】:

  • 您好,感谢您的帮助。我是matlab的初学者。请您详细说明。我不是很清楚了解
  • 我试过了,但我得到的是对象总数。我想按每种颜色获取对象的数量。
【解决方案3】:

最好在与 RGB 不同的色彩空间中工作(想想 HSV、Lab*、..)。

Steve Eddins 发表了一系列文章,展示了如何从图像中分割特定颜色的对象(在他的案例中为绿色 M&M):

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-16
    • 2017-06-03
    • 2020-06-11
    • 2021-04-28
    • 1970-01-01
    • 2022-10-08
    • 2011-04-29
    • 1970-01-01
    相关资源
    最近更新 更多