scipy.ndimage.

fourier_uniform#

scipy.ndimage.fourier_uniform(input, size, n=-1, axis=-1, output=None)[source]#

多维均匀傅里叶滤波器。

将数组与给定尺寸的盒状滤波器的傅里叶变换相乘。

参数:
inputarray_like

输入数组。

sizefloat 或 sequence

用于滤波的盒状尺寸。如果为 float,则所有轴的 size 相同。如果为 sequence,则 size 必须为每个轴包含一个值。

nint, optional

如果 n 为负数(默认),则假定输入是复数 fft 的结果。如果 n 大于或等于零,则假定输入是实数 fft 的结果,并且 n 给出了沿实变换方向变换前数组的长度。

axisint, 可选

实变换的轴。

outputndarray,可选

如果给定,滤波输入的输出将被放置在该数组中。

返回:
fourier_uniformndarray

过滤后的输入。

附注

数组 API 标准支持

fourier_uniform 除了 NumPy 之外,还对兼容 Python Array API 标准的后端提供了实验性支持。请考虑通过设置环境变量 SCIPY_ARRAY_API=1 并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。目前支持以下后端和设备(或其他能力)的组合。

CPU

GPU

NumPy

不适用

CuPy

不适用

PyTorch

JAX

⚠️ 无 JIT

Dask

⚠️ 计算图

不适用

有关更多信息,请参阅 对数组 API 标准的支持

示例

>>> from scipy import ndimage, datasets
>>> import numpy.fft
>>> import matplotlib.pyplot as plt
>>> fig, (ax1, ax2) = plt.subplots(1, 2)
>>> plt.gray()  # show the filtered result in grayscale
>>> ascent = datasets.ascent()
>>> input_ = numpy.fft.fft2(ascent)
>>> result = ndimage.fourier_uniform(input_, size=20)
>>> result = numpy.fft.ifft2(result)
>>> ax1.imshow(ascent)
>>> ax2.imshow(result.real)  # the imaginary part is an artifact
>>> plt.show()
../../_images/scipy-ndimage-fourier_uniform-1.png