зум#
- scipy.ndimage.зум(входные данные, зум, вывод=None, порядок=3, mode='constant', cval=0.0, prefilter=True, *, grid_mode=False)[источник]#
Увеличить массив.
Массив масштабируется с использованием сплайн-интерполяции указанного порядка.
- Параметры:
- входные данныеarray_like
Входной массив.
- зумfloat или последовательность
Коэффициент масштабирования по осям. Если float,
zoomодинаково для каждой оси. Если последовательность,zoomдолжен содержать одно значение для каждой оси.- выводмассив или dtype, опционально
Массив, в который будет помещен результат, или тип данных возвращаемого массива. По умолчанию будет создан массив того же типа данных, что и входной.
- порядокint, необязательный
Порядок сплайн-интерполяции, по умолчанию 3. Порядок должен быть в диапазоне 0-5.
- mode{‘reflect’, ‘grid-mirror’, ‘constant’, ‘grid-constant’, ‘nearest’, ‘mirror’, ‘grid-wrap’, ‘wrap’}, опционально
The mode параметр определяет, как входной массив расширяется за пределы его границ. По умолчанию 'constant'. Поведение для каждого допустимого значения следующее (см. дополнительные графики и детали на граничные режимы):
- ‘reflect’ (d c b a | a b c d | d c b a)
Входные данные расширяются путем отражения относительно края последнего пикселя. Этот режим также иногда называют полувыборочной симметрией.
- 'grid-mirror'
Это синоним для 'reflect'.
- ‘constant’ (k k k k | a b c d | k k k k)
Входные данные расширяются путем заполнения всех значений за границей одним и тем же постоянным значением, определенным cval параметр. Никакая интерполяция не выполняется за пределами границ ввода.
- ‘grid-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)
Входные данные расширяются путем отражения относительно центра последнего пикселя. Этот режим также иногда называют симметрией целого образца.
- ‘grid-wrap’ (a b c d | a b c d | a b c d)
Входные данные расширяются путём обёртывания вокруг противоположного края.
- ‘wrap’ (d b c d | a b c d | b c a b)
Входные данные расширяются за счёт зацикливания на противоположный край, но таким образом, что последняя точка и начальная точка точно перекрываются. В этом случае не определено, какой образец будет выбран в точке перекрытия.
- cvalскаляр, опционально
Значение для заполнения за краями ввода, если mode равно 'constant'. По умолчанию равно 0.0.
- prefilterbool, необязательно
Определяет, предварительно ли отфильтрован входной массив с помощью
spline_filterперед интерполяцией. По умолчанию True, что создаст временный float64 массив отфильтрованных значений, еслиorder > 1. Если установить это значение в False, вывод будет слегка размыт, еслиorder > 1, если только входные данные не предварительно отфильтрованы, т.е. они являются результатом вызоваspline_filterна исходных входных данных.- grid_modebool, необязательно
Если False, расстояние от центров пикселей масштабируется. В противном случае используется расстояние, включающее полный размер пикселя. Например, одномерный сигнал длиной 5 считается имеющим длину 4, когда grid_mode равно False, но длина 5, когда grid_mode равно True. См. следующую визуальную иллюстрацию:
| pixel 1 | pixel 2 | pixel 3 | pixel 4 | pixel 5 | |<-------------------------------------->| vs. |<----------------------------------------------->|Начальная точка стрелки на диаграмме выше соответствует координате 0 в каждом режиме.
- Возвращает:
- зумndarray
Увеличенный вход.
Примечания
Для комплекснозначных входные данные, эта функция масштабирует действительную и мнимую части независимо.
Добавлено в версии 1.6.0: Добавлена поддержка комплексных значений.
Примеры
>>> from scipy import ndimage, datasets >>> import matplotlib.pyplot as plt
>>> fig = plt.figure() >>> ax1 = fig.add_subplot(121) # left side >>> ax2 = fig.add_subplot(122) # right side >>> ascent = datasets.ascent() >>> result = ndimage.zoom(ascent, 3.0) >>> ax1.imshow(ascent, vmin=0, vmax=255) >>> ax2.imshow(result, vmin=0, vmax=255) >>> plt.show()
>>> print(ascent.shape) (512, 512)
>>> print(result.shape) (1536, 1536)