skimage 0.17.2

NotesParametersReturnsBackRef
diameter_closing(image, diameter_threshold=8, connectivity=1, parent=None, tree_traverser=None)

Diameter closing removes all dark structures of an image with maximal extension smaller than diameter_threshold. The maximal extension is defined as the maximal extension of the bounding box. The operator is also called Bounding Box Closing. In practice, the result is similar to a morphological closing, but long and thin structures are not removed.

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 diameter_closing is to be calculated. This image can be of any type.

diameter_threshold : unsigned int

The maximal extension parameter (number of pixels). The default value is 8.

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

Precomputed parent image representing the max tree of the inverted image. This function is fast, if precomputed parent and tree_traverser are provided. See Note for further details.

tree_traverser : 1D array, int64, optional

Precomputed traverser, where the pixels are ordered such that every pixel is preceded by its parent (except for the root which has no parent). This function is fast, if precomputed parent and tree_traverser are provided. See Note for further details.

Returns

output : ndarray

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

Perform a diameter closing of the image.

See Also

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

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 diameter closing:

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

All small minima with a maximal extension of 2 or less are removed. The remaining minima have all a maximal extension of at least 3.

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#475
type: <class 'function'>
Commit: