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.
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)
The input image for which the diameter_closing is to be calculated. This image can be of any type.
The maximal extension parameter (number of pixels). The default value is 8.
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.
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.
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.
Output image of the same shape and type as input image.
Perform a diameter closing of the image.
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 :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
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