scipy.ndimage.

morphological_gradient#

scipy.ndimage.morphological_gradient(входные данные, размер=None, footprint=None, структура=None, вывод=None, mode='reflect', cval=0.0, origin=0, *, оси=None)[источник]#

Многомерный морфологический градиент.

Морфологический градиент вычисляется как разность между дилатацией и эрозией входных данных с заданным структурирующим элементом.

Параметры:
входные данныеarray_like

Массив, по которому вычисляется морфологический градиент.

размеркортеж целых чисел

Форма плоского и полного структурного элемента, используемого для операций математической морфологии. Необязательно, если footprint или структура предоставляется. Больший размер дает более размытый градиент.

footprintмассив целых чисел, необязательный

Позиции небесконечных элементов плоского структурного элемента используемого для операций морфологии. Большие отпечатки дают более размытый морфологический градиент.

структурамассив целых чисел, необязательный

Структурирующий элемент, используемый для морфологических операций. структура может быть не плоским структурирующим элементом. The структура массив применяет смещения к пикселям в окрестности (смещение является аддитивным при дилатации и субтрактивным при эрозии)

выводмассив, опционально

Массив для хранения вывода морфологического градиента может быть предоставлен.

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

The mode параметр определяет, как обрабатываются границы массива, где cval это значение, когда mode равен 'constant'. По умолчанию 'reflect'

cvalскаляр, опционально

Значение для заполнения за краями ввода, если mode равно 'constant'. По умолчанию равно 0.0.

originскаляр, опционально

The origin параметр управляет размещением фильтра. По умолчанию 0

осикортеж int или None

Оси, по которым применяется фильтр. Если None, входные данные фильтруется по всем осям. Если origin Если предоставлен кортеж, его длина должна соответствовать количеству осей.

Возвращает:
morphological_gradientndarray

Морфологический градиент входные данные.

Примечания

Для плоского структурирующего элемента морфологический градиент, вычисленный в данной точке, соответствует максимальной разнице между элементами входных данных среди элементов, покрытых структурирующим элементом, центрированным на точке.

Ссылки

Примеры

>>> from scipy import ndimage
>>> import numpy as np
>>> a = np.zeros((7,7), dtype=int)
>>> a[2:5, 2:5] = 1
>>> ndimage.morphological_gradient(a, size=(3,3))
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 1, 1, 0, 1, 1, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> # The morphological gradient is computed as the difference
>>> # between a dilation and an erosion
>>> ndimage.grey_dilation(a, size=(3,3)) -\
...  ndimage.grey_erosion(a, size=(3,3))
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 1, 1, 0, 1, 1, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 1, 1, 1, 1, 1, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> a = np.zeros((7,7), dtype=int)
>>> a[2:5, 2:5] = 1
>>> a[4,4] = 2; a[2,3] = 3
>>> a
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 1, 3, 1, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 1, 1, 2, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> ndimage.morphological_gradient(a, size=(3,3))
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 1, 3, 3, 3, 1, 0],
       [0, 1, 3, 3, 3, 1, 0],
       [0, 1, 3, 2, 3, 2, 0],
       [0, 1, 1, 2, 2, 2, 0],
       [0, 1, 1, 2, 2, 2, 0],
       [0, 0, 0, 0, 0, 0, 0]])