binary_erosion#
- scipy.ndimage.binary_erosion(входные данные, структура=None, итерации=1, маска=None, вывод=None, border_value=0, origin=0, brute_force=False, *, оси=None)[источник]#
Многомерная бинарная эрозия с заданным структурирующим элементом.
Бинарная эрозия — это операция математической морфологии, используемая для обработки изображений.
- Параметры:
- входные данныеarray_like
Бинарное изображение для эрозии. Ненулевые (True) элементы образуют подмножество для эрозии.
- структураarray_like, необязательный
Структурный элемент, используемый для эрозии. Ненулевые элементы считаются True. Если структурный элемент не предоставлен, элемент генерируется с квадратной связностью, равной единице.
- итерацииint, необязательный
Эрозия повторяется итерации раз (один, по умолчанию). Если количество итераций меньше 1, эрозия повторяется до тех пор, пока результат не перестанет изменяться.
- маскаarray_like, необязательный
Если задана маска, только те элементы с истинным значением в соответствующем элементе маски изменяются на каждой итерации.
- выводndarray, необязательно
Массив той же формы, что и входной, в который помещается результат. По умолчанию создаётся новый массив.
- border_valueint (приводится к 0 или 1), опционально
Значение на границе выходного массива.
- originint или кортеж ints, опционально
Размещение фильтра, по умолчанию 0.
- brute_forceлогический, необязательный
Условие памяти: если False, только пиксели, значение которых было изменено на последней итерации, отслеживаются как кандидаты для обновления (эрозии) на текущей итерации; если True, все пиксели рассматриваются как кандидаты для эрозии, независимо от того, что произошло на предыдущей итерации. По умолчанию False.
- осикортеж int или None
Оси, по которым применяется фильтр. Если None, входные данные фильтруется по всем осям. Если origin Если предоставлен кортеж, его длина должна соответствовать количеству осей.
- Возвращает:
- binary_erosionndarray из булевых значений
Эрозия входа структурным элементом.
Смотрите также
Примечания
Эрозия [1] является операцией математической морфологии [2] которая использует структурирующий элемент для сжатия форм на изображении. Бинарная эрозия изображения структурным элементом - это множество точек, где наложение структурного элемента с центром в точке полностью содержится в множестве ненулевых элементов изображения.
Ссылки
Примеры
>>> from scipy import ndimage >>> import numpy as np >>> a = np.zeros((7,7), dtype=int) >>> a[1:6, 2:5] = 1 >>> a array([[0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0]]) >>> ndimage.binary_erosion(a).astype(a.dtype) array([[0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]]) >>> #Erosion removes objects smaller than the structure >>> ndimage.binary_erosion(a, structure=np.ones((5,5))).astype(a.dtype) array([[0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]])