2013-07-21 60 views
4

我想开发一个应用程序,可以计算图像中的对象数量。了解对象的形状并不重要。我只需要图像中有多少物体的信息。如何计算图像中检测到的物体的数量?

而且我希望能够用许多图像来实现它。那可能吗?怎么做?

这是我的代码:

a=citra1; 
    a_citra_keabuan = rgb2gray(a); 
    threshold = graythresh(a_citra_keabuan); 
    a_bww = im2bw(a_citra_keabuan,threshold); 
    a_bw = bwareaopen(a_bww,30); 
    se = strel('disk',2); 
    a_bw = imclose(a_bw,se); 
    a_bw=~a_bww; 
    [labeled,numObjects]=bwlabel(a_bw); 

numObjects示出了检测到的对象的在图像的数量。

这里是图像

Images1

Images2

+0

好多了这一次! – voxeloctree

+0

在应用阈值之前添加边缘检测是否有助于更清晰地划分区域?要处理很多图像,为什么不试试'for'循环? –

+0

你想要numObjects对每个样本图像做什么?如果你说什么> 1,那么你要求一些非常复杂的东西。 – Frederick

回答

0

的样品要开始了,你可以用不同的颜色充斥图像,然后检测多少颜色被保留。所以基本上要有一点,如果满足一些条件,用相同的颜色填充它的邻居。这应该留下一个大领域的照片(如果条件合适,前面的对象)。这些可以被计算在内。

下面是关于如何做到这一点的提示: http://blogs.mathworks.com/steve/2008/02/25/neighbor-indexing-2/