| [mmhistogram] [Up] [mmblob] | Measurements |
Implemented in Python.
| f | Image Binary image. |
| Bc | Structuring Element ( connectivity). Default:
|
| y | Image If number of labels is less than 65535, the data type is uint16, otherwise it is int32. |
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.
>>> f=mmbinary([ [0,1,0,1,1], [1,0,0,1,0]])
>>> g=mmlabel(f)
>>> print g
[[0 1 0 2 2] [3 0 0 2 0]]
def mmlabel(f, Bc=None):
from Numeric import allclose, ravel, nonzero, array
if Bc is None: Bc = mmsecross()
assert mmisbinary,'Can only label binary image'
zero = mmsubm(f,f) # zero image
faux=f
r = array(zero)
label = 1
y = mmgray( f,'uint16',0) # zero image (output)
while not allclose(faux,0):
x=nonzero(ravel(faux))[0] # get first unlabeled pixel
fmark = array(zero)
fmark.flat[x] = 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
return y
| 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] | |
| Copyright (c) 2003, Roberto A. Lotufo, UNICAMP-University of Campinas; Rubens C. Machado, CenPRA-Renato Archer Research Center. |