如何在Matlab中对彩色图像中的物体进行计数识别

如何在Matlab中对彩色图像中的物体进行计数识别,matlab,image-processing,computer-vision,Matlab,Image Processing,Computer Vision,我想计算图像中由每种颜色标识的对象数 示例:我想计算图像中的黄米或绿米 你能给我一些提示吗?假设你在矩阵a中有一个大小为m*n*3的图像,你想找到颜色为[r,g,b]的对象的数量 首先,仅选择颜色正确的像素: bb = (a(:,:,1) == r & a(:,:,2) == g &a(:,:,3) == b); 比: num是对象的数量。您从MATLAB附带的中获取了此图像。如果您通读了演示,您已经有了一些代码,可以将每个米粒单独分离出来-这就是图像的创建方式 至于计算具有特

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

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


你能给我一些提示吗?

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

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

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


num是对象的数量。

您从MATLAB附带的中获取了此图像。如果您通读了演示,您已经有了一些代码,可以将每个米粒单独分离出来-这就是图像的创建方式

至于计算具有特定颜色(如黄色或绿色)的谷物数量,请再次通读演示:很明显,稻谷不是用一小部分离散颜色(如黄色或绿色、橙色或粉色)着色的。相反,米粒颜色是专门创建的,因此它们在整个colormap spring中的间隔是相等的

因此,为了继续你的任务,你必须提供一些“黄色”或“绿色”的定义,也许是在RGB值的特定范围内


完成此操作后,您可以使用在演示中为您构建的标记为的变量以及regionprops命令,为您提供每个rice晶界内的像素列表。只需将这些像素与您对黄色或绿色的定义进行比较,您就知道了。

这最好是通过在不同于RGB的颜色空间中工作来实现的,如HSV、Lab*、

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


嗨,谢谢你的帮助。我是matlab的初学者。请你详细说明一下。我不太清楚我已经试过了,但我得到的是物体的总数。我想按每种颜色获取对象的数量。可能的副本已更新。改用。
[~,num] = bwlabel(bb,8)