skimage 0.17.2

NotesParametersReturnsBackRef
area_closing(image, area_threshold=64, connectivity=1, parent=None, tree_traverser=None)

Area closing removes all dark structures of an image with a surface smaller than area_threshold. The output image is larger than or equal to the input image for every pixel and all local minima have at least a surface of area_threshold pixels.

Area closings are similar to morphological closings, but they do not use a fixed structuring element, but rather a deformable one, with surface = area_threshold.

In the binary case, area closings are equivalent to remove_small_holes; this operator is thus extended to gray-level images.

Technically, this operator is based on the max-tree representation of the image.

Notes

If a max-tree representation (parent and tree_traverser) are given to the function, they must be calculated from the inverted image for this function, i.e.: >>> P, S = max_tree(invert(f)) >>> closed = diameter_closing(f, 3, parent=P, tree_traverser=S)

Parameters

image : ndarray

The input image for which the area_closing is to be calculated. This image can be of any type.

area_threshold : unsigned int

The size parameter (number of pixels). The default value is arbitrarily chosen to be 64.

connectivity : unsigned int, optional

The neighborhood connectivity. The integer represents the maximum number of orthogonal steps to reach a neighbor. In 2D, it is 1 for a 4-neighborhood and 2 for a 8-neighborhood. Default value is 1.

parent : ndarray, int64, optional

Parent image representing the max tree of the inverted image. The value of each pixel is the index of its parent in the ravelled array. See Note for further details.

tree_traverser : 1D array, int64, optional

The ordered pixel indices (referring to the ravelled array). The pixels are ordered such that every pixel is preceded by its parent (except for the root which has no parent).

Returns

output : ndarray

Output image of the same shape and type as input image.

Perform an area closing of the image.

See Also

skimage.morphology.area_opening
skimage.morphology.diameter_closing
skimage.morphology.diameter_opening
skimage.morphology.max_tree
skimage.morphology.remove_small_holes
skimage.morphology.remove_small_objects

Examples

We create an image (quadratic function with a minimum in the center and 4 additional local minima.

This example is valid syntax, but we were not able to check execution
>>> w = 12
... x, y = np.mgrid[0:w,0:w]
... f = 180 + 0.2*((x - w/2)**2 + (y-w/2)**2)
... f[2:3,1:5] = 160; f[2:4,9:11] = 140; f[9:11,2:4] = 120
... f[9:10,9:11] = 100; f[10,10] = 100
... f = f.astype(np.int)

We can calculate the area closing:

This example is valid syntax, but we were not able to check execution
>>> closed = area_closing(f, 8, connectivity=1)

All small minima are removed, and the remaining minima have at least a size of 8.

See :

Back References

The following pages refer to to this document either explicitly or contain code examples using this.

skimage.morphology.max_tree.diameter_opening skimage.morphology.max_tree.area_closing skimage.morphology.max_tree.area_opening skimage.morphology.max_tree.diameter_closing

Local connectivity graph

Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.

Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)

SVG is more flexible but power hungry; and does not scale well to 50 + nodes.

All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them


File: /skimage/morphology/max_tree.py#349
type: <class 'function'>
Commit: