morphological_gradient#
- scipy.ndimage.morphological_gradient(входные данные, размер=None, footprint=None, структура=None, вывод=None, mode='reflect', cval=0.0, origin=0, *, оси=None)[источник]#
Многомерный морфологический градиент.
Морфологический градиент вычисляется как разность между дилатацией и эрозией входных данных с заданным структурирующим элементом.
- Параметры:
- входные данныеarray_like
Массив, по которому вычисляется морфологический градиент.
- размеркортеж целых чисел
Форма плоского и полного структурного элемента, используемого для операций математической морфологии. Необязательно, если footprint или структура предоставляется. Больший размер дает более размытый градиент.
- footprintмассив целых чисел, необязательный
Позиции небесконечных элементов плоского структурного элемента используемого для операций морфологии. Большие отпечатки дают более размытый морфологический градиент.
- структурамассив целых чисел, необязательный
Структурирующий элемент, используемый для морфологических операций. структура может быть не плоским структурирующим элементом. The структура массив применяет смещения к пикселям в окрестности (смещение является аддитивным при дилатации и субтрактивным при эрозии)
- выводмассив, опционально
Массив для хранения вывода морфологического градиента может быть предоставлен.
- mode{‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’}, optional
The mode параметр определяет, как обрабатываются границы массива, где cval это значение, когда mode равен 'constant'. По умолчанию 'reflect'
- cvalскаляр, опционально
Значение для заполнения за краями ввода, если mode равно 'constant'. По умолчанию равно 0.0.
- originскаляр, опционально
The origin параметр управляет размещением фильтра. По умолчанию 0
- осикортеж int или None
Оси, по которым применяется фильтр. Если None, входные данные фильтруется по всем осям. Если origin Если предоставлен кортеж, его длина должна соответствовать количеству осей.
- Возвращает:
- morphological_gradientndarray
Морфологический градиент входные данные.
Смотрите также
Примечания
Для плоского структурирующего элемента морфологический градиент, вычисленный в данной точке, соответствует максимальной разнице между элементами входных данных среди элементов, покрытых структурирующим элементом, центрированным на точке.
Ссылки
Примеры
>>> from scipy import ndimage >>> import numpy as np >>> a = np.zeros((7,7), dtype=int) >>> a[2:5, 2:5] = 1 >>> ndimage.morphological_gradient(a, size=(3,3)) array([[0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 0, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0]]) >>> # The morphological gradient is computed as the difference >>> # between a dilation and an erosion >>> ndimage.grey_dilation(a, size=(3,3)) -\ ... ndimage.grey_erosion(a, size=(3,3)) array([[0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 0, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0]]) >>> 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.morphological_gradient(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, 2, 3, 2, 0], [0, 1, 1, 2, 2, 2, 0], [0, 1, 1, 2, 2, 2, 0], [0, 0, 0, 0, 0, 0, 0]])