Label connected components in binary image

`L = bwlabeln(BW)`

[L, NUM] = bwlabeln(BW)

[L, NUM] = bwlabeln(BW, conn)

`L = bwlabeln(BW)`

returns
a label matrix, `L`

, containing labels for the connected
components in `BW`

. The input image `BW`

can
have any dimension; `L`

is the same size as `BW`

.
The elements of `L`

are integer values greater than
or equal to 0. The pixels labeled `0`

are the background.
The pixels labeled `1`

make up one object; the pixels
labeled `2`

make up a second object; and so on. The
default connectivity is 8 for two dimensions, 26 for three dimensions,
and `conndef(ndims(BW), 'maximal')`

for higher dimensions.

`[L, NUM] = bwlabeln(BW)`

returns
in `NUM`

the number of connected objects found in `BW`

.

`[L, NUM] = bwlabeln(BW, conn)`

specifies
the desired connectivity. `conn`

can have any of
the following scalar values.

Value | Meaning |
---|---|

| |

4 | 4-connected neighborhood |

8 | 8-connected neighborhood |

| |

6 | 6-connected neighborhood |

18 | 18-connected neighborhood |

26 | 26-connected neighborhood |

Connectivity can also be defined in a more general way for any
dimension by using for `conn`

a 3-by-3-by- ...-by-3
matrix of `0`

s and `1`

s. The `1`

-valued
elements define neighborhood locations relative to the central element
of `conn`

. Note that `conn`

must
be symmetric about its central element.

The functions `bwlabel`

, `bwlabeln`

,
and `bwconncomp`

all compute connected components
for binary images. `bwconncomp`

replaces the use
of `bwlabel`

and `bwlabeln`

. It
uses significantly less memory and is sometimes faster than the older
functions.

Function | Input Dimension | Output Form | Memory Use | Connectivity |
---|---|---|---|---|

`bwlabel` | 2-D | Double-precision label matrix | High | 4 or 8 |

`bwlabeln` | N-D | Double-precision label matrix | High | Any |

`bwconncomp` | N-D | `CC` struct | Low | Any |

`BW`

can be numeric or logical, and it must
be real and nonsparse. `L`

is of class `double`

.

Calculate the centroids of the 3-D objects.

BW = cat(3, [1 1 0; 0 0 0; 1 0 0],... [0 1 0; 0 0 0; 0 1 0],... [0 1 1; 0 0 0; 0 0 1]) bwlabeln(BW) ans(:,:,1) = 1 1 0 0 0 0 2 0 0 ans(:,:,2) = 0 1 0 0 0 0 0 2 0 ans(:,:,3) = 0 1 1 0 0 0 0 0 2

[1] Sedgewick, Robert, *Algorithms
in C*, 3rd Ed., Addison-Wesley, 1998, pp. 11-20.

`bwconncomp`

| `bwlabel`

| `label2rgb`

| `labelmatrix`

| `regionprops`

Was this topic helpful?