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