scipy.ndimage.

prewitt#

scipy.ndimage.prewitt(входные данные, ось=-1, вывод=None, mode='reflect', cval=0.0)[источник]#

Вычислить фильтр Превитта.

Параметры:
входные данныеarray_like

Входной массив.

осьint, необязательный

Ось входные данные по которому вычислять. По умолчанию -1.

выводмассив или dtype, опционально

Массив, в который будет помещен результат, или тип данных возвращаемого массива. По умолчанию будет создан массив того же типа данных, что и входной.

modestr или sequence, опционально

The mode параметр определяет, как расширяется входной массив при перекрытии фильтра границы. Передавая последовательность режимов длиной, равной количеству измерений входного массива, можно указать разные режимы вдоль каждой оси. Значение по умолчанию — 'reflect'. Допустимые значения и их поведение следующие:

‘reflect’ (d c b a | a b c d | d c b a)

Входные данные расширяются путем отражения относительно края последнего пикселя. Этот режим также иногда называют полувыборочной симметрией.

‘constant’ (k k k k | a b c d | k k k k)

Входные данные расширяются путем заполнения всех значений за границей одним и тем же постоянным значением, определенным cval параметр.

‘nearest’ (a a a a | a b c d | d d d d)

Входные данные расширяются путём репликации последнего пикселя.

‘mirror’ (d c b | a b c d | c b a)

Входные данные расширяются путем отражения относительно центра последнего пикселя. Этот режим также иногда называют симметрией целого образца.

‘wrap’ (a b c d | a b c d | a b c d)

Входные данные расширяются путём обёртывания вокруг противоположного края.

Для согласованности с функциями интерполяции можно также использовать следующие названия режимов:

‘grid-constant’

Это синоним для 'constant'.

'grid-mirror'

Это синоним для 'reflect'.

‘grid-wrap’

Это синоним для ‘wrap’.

cvalскаляр, опционально

Значение для заполнения за краями ввода, если mode равно 'constant'. По умолчанию равно 0.0.

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

Отфильтрованный массив. Имеет ту же форму, что и входные данные.

Смотрите также

sobel

Фильтр Собеля

Примечания

Эта функция вычисляет одномерный фильтр Превитта. Горизонтальные края выделяются горизонтальным преобразованием (axis=0), вертикальные края - вертикальным преобразованием (axis=1), и так далее для более высоких размерностей. Их можно комбинировать для получения величины.

Примеры

>>> from scipy import ndimage, datasets
>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> ascent = datasets.ascent()
>>> prewitt_h = ndimage.prewitt(ascent, axis=0)
>>> prewitt_v = ndimage.prewitt(ascent, axis=1)
>>> magnitude = np.sqrt(prewitt_h ** 2 + prewitt_v ** 2)
>>> magnitude *= 255 / np.max(magnitude) # Normalization
>>> fig, axes = plt.subplots(2, 2, figsize = (8, 8))
>>> plt.gray()
>>> axes[0, 0].imshow(ascent)
>>> axes[0, 1].imshow(prewitt_h)
>>> axes[1, 0].imshow(prewitt_v)
>>> axes[1, 1].imshow(magnitude)
>>> titles = ["original", "horizontal", "vertical", "magnitude"]
>>> for i, ax in enumerate(axes.ravel()):
...     ax.set_title(titles[i])
...     ax.axis("off")
>>> plt.show()
../../_images/scipy-ndimage-prewitt-1.png