scipy.ndimage.

correlate#

scipy.ndimage.correlate(входные данные, веса, вывод=None, mode='reflect', cval=0.0, origin=0, *, оси=None)[источник]#

Многомерная корреляция.

Массив коррелирует с заданным ядром.

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

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

весаndarray

массив весов, то же количество измерений, что и вход

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

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

mode{‘reflect’, ‘constant’, ‘nearest’, ‘mirror’, ‘wrap’}, optional

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-mirror'

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

‘grid-constant’

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

‘grid-wrap’

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

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

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

originint или sequence, optional

Управляет размещением фильтра на пикселях входного массива. Значение 0 (по умолчанию) центрирует фильтр над пикселем, положительные значения сдвигают фильтр влево, а отрицательные — вправо. Передавая последовательность origins длиной, равной количеству измерений входного массива, можно задать разные сдвиги вдоль каждой оси.

осикортеж из int или None, опционально

Если None, входные данные фильтруется по всем осям. В противном случае, входные данные фильтруется вдоль указанных осей. Когда оси если указан, любые кортежи, используемые для mode или origin должен соответствовать длине оси. i-й элемент в любом из этих кортежей соответствует i-му элементу в оси.

Возвращает:
результатndarray

Результат корреляции входные данные с веса.

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

convolve

Свёртка изображения с ядром.

Примеры

Корреляция - это процесс перемещения фильтрующей маски, часто называемой ядром, по изображению и вычисления суммы произведений в каждом месте.

>>> from scipy.ndimage import correlate
>>> import numpy as np
>>> input_img = np.arange(25).reshape(5,5)
>>> print(input_img)
[[ 0  1  2  3  4]
[ 5  6  7  8  9]
[10 11 12 13 14]
[15 16 17 18 19]
[20 21 22 23 24]]

Определяет ядро (веса) для корреляции. В этом примере оно предназначено для суммы центрального и соседних элементов сверху, снизу, слева и справа.

>>> weights = [[0, 1, 0],
...            [1, 1, 1],
...            [0, 1, 0]]

Мы можем вычислить результат корреляции: Например, элемент [2,2] является 7 + 11 + 12 + 13 + 17 = 60.

>>> correlate(input_img, weights)
array([[  6,  10,  15,  20,  24],
    [ 26,  30,  35,  40,  44],
    [ 51,  55,  60,  65,  69],
    [ 76,  80,  85,  90,  94],
    [ 96, 100, 105, 110, 114]])