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()