scipy.ndimage.

grey_dilation#

scipy.ndimage.grey_dilation(входные данные, размер=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 Если предоставлен кортеж, его длина должна соответствовать количеству осей.

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

Серое расширение входные данные.

Примечания

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

(input+s)(x) = max {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[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.grey_dilation(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, 3, 3, 2, 0],
       [0, 1, 1, 2, 2, 2, 0],
       [0, 1, 1, 2, 2, 2, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> ndimage.grey_dilation(a, footprint=np.ones((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, 3, 3, 2, 0],
       [0, 1, 1, 2, 2, 2, 0],
       [0, 1, 1, 2, 2, 2, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> s = ndimage.generate_binary_structure(2,1)
>>> s
array([[False,  True, False],
       [ True,  True,  True],
       [False,  True, False]], dtype=bool)
>>> ndimage.grey_dilation(a, footprint=s)
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 0, 1, 3, 1, 0, 0],
       [0, 1, 3, 3, 3, 1, 0],
       [0, 1, 1, 3, 2, 1, 0],
       [0, 1, 1, 2, 2, 2, 0],
       [0, 0, 1, 1, 2, 0, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> ndimage.grey_dilation(a, size=(3,3), structure=np.ones((3,3)))
array([[1, 1, 1, 1, 1, 1, 1],
       [1, 2, 4, 4, 4, 2, 1],
       [1, 2, 4, 4, 4, 2, 1],
       [1, 2, 4, 4, 4, 3, 1],
       [1, 2, 2, 3, 3, 3, 1],
       [1, 2, 2, 3, 3, 3, 1],
       [1, 1, 1, 1, 1, 1, 1]])