scipy.ndimage.

grey_erosion#

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

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

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

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

Массив, над которым вычисляется эрозия в градациях серого.

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

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

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

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

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

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

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

Массив для хранения результата эрозии может быть предоставлен.

mode{‘reflect’,’constant’,’nearest’,’mirror’, ‘wrap’}, опционально

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

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

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

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

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

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

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

Возвращает:
выводndarray

Серое морфологическое эрозия входные данные.

Примечания

Серое эрозионное преобразование изображения input структурным элементом s, определённым над областью E, задаётся как:

(input+s)(x) = min {input(y) - s(x-y), для y в E}

В частности, для структурных элементов, определённых как s(y) = 0 для y в E, серое морфологическое эрозия вычисляет минимум входного изображения внутри скользящего окна, определённого E.

Эрозия в оттенках серого [1] является математическая морфология операция [2].

Ссылки

Примеры

>>> from scipy import ndimage
>>> import numpy as np
>>> a = np.zeros((7,7), dtype=int)
>>> a[1:6, 1:6] = 3
>>> a[4,4] = 2; a[2,3] = 1
>>> a
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 3, 3, 3, 3, 3, 0],
       [0, 3, 3, 1, 3, 3, 0],
       [0, 3, 3, 3, 3, 3, 0],
       [0, 3, 3, 3, 2, 3, 0],
       [0, 3, 3, 3, 3, 3, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> ndimage.grey_erosion(a, size=(3,3))
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 3, 2, 2, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> footprint = ndimage.generate_binary_structure(2, 1)
>>> footprint
array([[False,  True, False],
       [ True,  True,  True],
       [False,  True, False]], dtype=bool)
>>> # Diagonally-connected elements are not considered neighbors
>>> ndimage.grey_erosion(a, footprint=footprint)
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 3, 1, 2, 0, 0],
       [0, 0, 3, 2, 2, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0]])