使用MatLab计算图像上的对象数量

时间:2015-06-17 17:53:31

标签: matlab image-processing object-recognition

我需要用MatLab计算图像上的粉笔数量。我试图将我的图像转换为灰度图像,而不是分配边框。此外,我试图将我的图像转换为二进制图像,并使用它进行不同的形态操作,但我没有得到理想的结果。可能是我做错了什么。请帮帮我!

我的形象:

enter image description here

3 个答案:

答案 0 :(得分:1)

您可以使用粉笔色彩鲜艳且分隔符为灰色的事实。使用rgb2hsv将图像转换为HSV颜色空间,并获取饱和度分量。阈值,然后尝试使用形态分离粉笔片。

答案 1 :(得分:1)

好的,所以我花了一点时间研究这个 - 但不幸的是我今天没时间了,我为不完整的答案道歉,但也许这会让你开始 - (如果你需要更多的帮助,我和# 39;将在周末编辑这篇文章给你一个更完整的答案:))

这是代码 -

for i=1:3
    I = RWBDS(:,:,i);  
    se = strel('rectangle', [265,50]);
    Io = imopen(I, se);
    Ie = imerode(I, se);
    Iobr = imreconstruct(Ie, I);
    Iobrd = imdilate(Iobr, se);
    Iobrcbr = imreconstruct(imcomplement(Iobrd), imcomplement(Iobr));
    Iobrcbr = imcomplement(Iobrcbr);
    Iobrcbrm = imregionalmax(Iobrcbr);
    se2 = strel('rectangle', [150,50]);
    Io2 = imerode(Iobrcbrm, se2);
    Ie2 = imdilate(Io2, se2);
    fgm{i} = Ie2;
end

fgm_final = fgm{1}+fgm{2}+fgm{3}; 
figure, imagesc(fgm_final); 

Result from imagesc

它仍然会拾取图像侧面的边缘,但是从这里开始您将使用连接的bwconnectedcomponents,并且您将获得主轴和短轴的长度,通过查看对象的比例,它将摆脱那些。

无论如何祝你好运!

编辑: 我更多地使用了代码,并使用新结果更新了上面的代码。在我能够摆脱一边"噪音"它也摆脱了侧面的粉笔。我想我只是留下了两个。

我做了什么:在大多数情况下,转换到HSV色彩空间是可行的方法,但正如@rayryeng所示,这不是这里的方法。当有一种颜色时,Hue的效果非常好 - 例如,所有的粉笔都是红色的。 (从逻辑上讲,你会认为使用颜色通道会更好,但事实并非如此。)然而,在这种情况下,所有白垩的唯一共同点是相对形状。我的解决方案基本上使用了这个概念,将结构元素se设置为粉笔的基本形状和比例以及执行形态操作 - 正如您最初猜测的那样。

有关详细信息,建议您阅读有关这些特定功能的matlab文档。

我会让你弄清楚如何根据我给你的东西得到最后一支粉笔:)

答案 2 :(得分:1)

这也不是一个完整的解决方案,但希望它可以为您或其他人提供一个起点。

像迪马一样,我注意到粉笔颜色鲜艳,而分隔线几乎是灰色的。我以为你可以尝试隔离灰色像素(灰色像素表示红色=蓝色=绿色)并从那里开始。我尝试应用过滤器并进行形态学操作,但找不到令人满意的东西。不过,我希望这有帮助

  SELECT det1.baseData AS det11
       , det2.baseData AS det22
       , det3.baseData AS det33
    FROM ( SELECT '500' AS aid 
           UNION ALL SELECT '503'
           UNION ALL SELECT '505'
           UNION ALL SELECT '507'
           UNION ALL SELECT '509'
         ) q
    LEFT
    JOIN xy det1 ON det1.aid = q.aid AND det1.z = '20'
    LEFT
    JOIN xy det2 ON det2.aid = q.aid AND det2.z = '25'
    LEFT
    JOIN xy det3 ON det3.aid = q.aid AND det3.z = '40'
   ORDER BY q.aid

graymask