scipy.ndimage.black_tophat#

scipy.ndimage.black_tophat(input, size=None, footprint=None, structure=None, output=None, mode='reflect', cval=0.0, origin=0)[source]#

Multidimensional black tophat filter.

Parameters:
inputarray_like

Input.

sizetuple of ints, optional

Shape of a flat and full structuring element used for the filter. Optional if footprint or structure is provided.

footprintarray of ints, optional

Positions of non-infinite elements of a flat structuring element used for the black tophat filter.

structurearray of ints, optional

Structuring element used for the filter. structure may be a non-flat structuring element.

outputarray, optional

An array used for storing the output of the filter may be provided.

mode{‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’}, optional

The mode parameter determines how the array borders are handled, where cval is the value when mode is equal to ‘constant’. Default is ‘reflect’

cvalscalar, optional

Value to fill past edges of input if mode is ‘constant’. Default is 0.0.

originscalar, optional

The origin parameter controls the placement of the filter. Default 0

Returns:
black_tophatndarray

Result of the filter of input with structure.

Examples

Change dark peak to bright peak and subtract background.

>>> from scipy.ndimage import generate_binary_structure, black_tophat
>>> import numpy as np
>>> square = generate_binary_structure(rank=2, connectivity=3)
>>> dark_on_gray = np.array([[7, 6, 6, 6, 7],
...                          [6, 5, 4, 5, 6],
...                          [6, 4, 0, 4, 6],
...                          [6, 5, 4, 5, 6],
...                          [7, 6, 6, 6, 7]])
>>> black_tophat(input=dark_on_gray, structure=square)
array([[0, 0, 0, 0, 0],
       [0, 0, 1, 0, 0],
       [0, 1, 5, 1, 0],
       [0, 0, 1, 0, 0],
       [0, 0, 0, 0, 0]])