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]])