[mmhistogram] [Up] [mmblob] Measurements

mmlabel
Label a binary image.

Synopsis

function y = mmlabel ( f , Bc )

Input

f Image Binary image
Bc Structuring Element

Default: 3x3 elementary cross

( connectivity).

Output

y Image

If number of labels is less than 65535, the data type is uint16, otherwise it is int32.

Description

mmlabel creates the image y by labeling the connect components of a binary image f, according to the connectivity defined by the structuring element Bc. The background pixels (with value 0) are not labeled. The maximum label value in the output image gives the number of its connected components.

This implementation is very fast and is based on the algorithm proposed in [SB98].

Examples

Numerical Example
f=mmbinary([0 1 0 1 1; 1 0 0 1 0])
Warning: converting image from double to int32
f =
     0     1     0     1     1
     1     0     0     1     0
g=mmlabel(f)
g =
      0      2      0      3      3
      1      0      0      3      0
Image Example

The maximum label value gives the number of connected blobs in the image.

f = mmreadgray('blob3.tif');
g=mmlabel(f);
nblobs=mmstats(g,'max')
nblobs =
    18
mmshow(f);
mmlblshow(g);
f g

Equation

Where H is the number of image rows, and y1 and y2 are the row and column coordinates respectively.

Algorithm

function y = mmlabeleq(f, Bc)
faux=f;
fmark=mmsubm(f,f);             % zero image
r=fmark;
label=1;
y=mmgray(f,'uint16',0);        % zero image (output)
while ~mmisequal(faux,mmbinary([0]))
   x=find(faux);               %get all unlabeled pixel
   fmark(x(1))=1;              %get the first unlabeled pixel
   r=mminfrec(fmark,faux,Bc);  %detects all pixels connected to it
   faux=mmsubm(faux,r);        %remove them from faux
   r=mmgray(r,'uint16',label); %label them with the value label
   y=mmunion(y,r);             %merge them with the labeled image
   label=label+1;
end

See also

mmlabelflat Label the flat zones of gray-scale images.
mmfreedom Control automatic data type conversion.
mmsebox Create a box structuring element.
mmsecross Diamond structuring element and elementary 3x3 cross.
mmareaopen Area opening
mmblob Blob measurements from a labeled image.
mmgrain Gray-scale statistics for each labeled region.
[mmhistogram] [Up] [mmblob]