Morphological processing starts at the peaks in the marker image and spreads throughout the rest of the image based on the connectivity of the pixels. Connectivity defines which pixels are connected to other pixels. A set of pixels in a binary image that form a connected group is called an object or a connected component.
Determining which pixels create a connected component depends on how pixel connectivity is defined. For example, this binary image contains one foreground object or two, depending on the connectivity. If the foreground is 4-connected, the image is all one object — there is no distinction between a foreground object and the background. However, if the foreground is 8-connected, the pixels set to 1 connect to form a closed loop and the image has two separate objects: the pixels in the loop and the pixels outside the loop.
0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
The following table lists all the standard two- and three-dimensional connectivities supported by the toolbox.
Value | Meaning | |
---|---|---|
Two-Dimensional Connectivities | ||
4-connected | Pixels are connected if their edges touch. Two adjoining pixels are part of the same object if they are both on and are connected along the horizontal or vertical direction. | |
8-connected | Pixels are connected if their edges or corners touch. Two adjoining pixels are part of the same object if they are both on and are connected along the horizontal, vertical, or diagonal direction. | |
Three-Dimensional Connectivities | ||
6-connected | Pixels are connected if their faces touch. Two adjoining pixels are part of the same object if they are both on and are connected in:
| |
18-connected | Pixels are connected if their faces or edges touch. Two adjoining pixels are part of the same object if they are both on and are connected in
| |
26-connected | Pixels are connected if their faces, edges, or corners touch. Two adjoining pixels are part of the same object if they are both on and are connected in
|
The type of neighborhood you choose affects the number of objects found in an image and the boundaries of those objects. For this reason, the results of many morphology operations often differ depending upon the type of connectivity you specify.
For example, if you specify a 4-connected neighborhood, this binary image contains two objects; if you specify an 8-connected neighborhood, the image has one object.
0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0
You can also define custom neighborhoods by specifying a 3-by-3-by-...-by-3 array
of 0
s and 1
s. The 1
-valued
elements define the connectivity of the neighborhood relative to the center
element.
For example, this array defines a “North/South” connectivity which can be used to break up an image into independent columns.
CONN = [ 0 1 0; 0 1 0; 0 1 0 ] CONN = 0 1 0 0 1 0 0 1 0
Connectivity arrays must be symmetric about their center element. Also, you can use a 2-D connectivity array with a 3-D image; the connectivity affects each "page" in the 3-D image.
boundarymask
| bwareaopen
| bwconncomp
| bwconncomp
| conndef
| imfill
| iptcheckconn