ndimage.fourier

Module Contents

Functions

_get_output_fourier(output,input)
_get_output_fourier_complex(output,input)
fourier_gaussian(input,sigma,n=None,axis=None,output=None) Multi-dimensional Gaussian fourier filter.
fourier_uniform(input,size,n=None,axis=None,output=None) Multi-dimensional uniform fourier filter.
fourier_ellipsoid(input,size,n=None,axis=None,output=None) Multi-dimensional ellipsoid fourier filter.
fourier_shift(input,shift,n=None,axis=None,output=None) Multi-dimensional fourier shift filter.
_get_output_fourier(output, input)
_get_output_fourier_complex(output, input)
fourier_gaussian(input, sigma, n=None, axis=None, output=None)

Multi-dimensional Gaussian fourier filter.

The array is multiplied with the fourier transform of a Gaussian kernel.

input : array_like
The input array.
sigma : float or sequence
The sigma of the Gaussian kernel. If a float, sigma is the same for all axes. If a sequence, sigma has to contain one value for each axis.
n : int, optional
If n is negative (default), then the input is assumed to be the result of a complex fft. If n is larger than or equal to zero, the input is assumed to be the result of a real fft, and n gives the length of the array before transformation along the real transform direction.
axis : int, optional
The axis of the real transform.
output : ndarray, optional
If given, the result of filtering the input is placed in this array. None is returned in this case.
fourier_gaussian : ndarray or None
The filtered input. If output is given as a parameter, None is returned.
>>> from scipy import ndimage, misc
>>> import numpy.fft
>>> import matplotlib.pyplot as plt
>>> fig, (ax1, ax2) = plt.subplots(1, 2)
>>> plt.gray()  # show the filtered result in grayscale
>>> ascent = misc.ascent()
>>> input_ = numpy.fft.fft2(ascent)
>>> result = ndimage.fourier_gaussian(input_, sigma=4)
>>> result = numpy.fft.ifft2(result)
>>> ax1.imshow(ascent)
>>> ax2.imshow(result.real)  # the imaginary part is an artifact
>>> plt.show()
fourier_uniform(input, size, n=None, axis=None, output=None)

Multi-dimensional uniform fourier filter.

The array is multiplied with the fourier transform of a box of given size.

input : array_like
The input array.
size : float or sequence
The size of the box used for filtering. If a float, size is the same for all axes. If a sequence, size has to contain one value for each axis.
n : int, optional
If n is negative (default), then the input is assumed to be the result of a complex fft. If n is larger than or equal to zero, the input is assumed to be the result of a real fft, and n gives the length of the array before transformation along the real transform direction.
axis : int, optional
The axis of the real transform.
output : ndarray, optional
If given, the result of filtering the input is placed in this array. None is returned in this case.
fourier_uniform : ndarray or None
The filtered input. If output is given as a parameter, None is returned.
>>> from scipy import ndimage, misc
>>> import numpy.fft
>>> import matplotlib.pyplot as plt
>>> fig, (ax1, ax2) = plt.subplots(1, 2)
>>> plt.gray()  # show the filtered result in grayscale
>>> ascent = misc.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()
fourier_ellipsoid(input, size, n=None, axis=None, output=None)

Multi-dimensional ellipsoid fourier filter.

The array is multiplied with the fourier transform of a ellipsoid of given sizes.

input : array_like
The input array.
size : float or sequence
The size of the box used for filtering. If a float, size is the same for all axes. If a sequence, size has to contain one value for each axis.
n : int, optional
If n is negative (default), then the input is assumed to be the result of a complex fft. If n is larger than or equal to zero, the input is assumed to be the result of a real fft, and n gives the length of the array before transformation along the real transform direction.
axis : int, optional
The axis of the real transform.
output : ndarray, optional
If given, the result of filtering the input is placed in this array. None is returned in this case.
fourier_ellipsoid : ndarray or None
The filtered input. If output is given as a parameter, None is returned.

This function is implemented for arrays of rank 1, 2, or 3.

>>> from scipy import ndimage, misc
>>> import numpy.fft
>>> import matplotlib.pyplot as plt
>>> fig, (ax1, ax2) = plt.subplots(1, 2)
>>> plt.gray()  # show the filtered result in grayscale
>>> ascent = misc.ascent()
>>> input_ = numpy.fft.fft2(ascent)
>>> result = ndimage.fourier_ellipsoid(input_, size=20)
>>> result = numpy.fft.ifft2(result)
>>> ax1.imshow(ascent)
>>> ax2.imshow(result.real)  # the imaginary part is an artifact
>>> plt.show()
fourier_shift(input, shift, n=None, axis=None, output=None)

Multi-dimensional fourier shift filter.

The array is multiplied with the fourier transform of a shift operation.

input : array_like
The input array.
shift : float or sequence
The size of the box used for filtering. If a float, shift is the same for all axes. If a sequence, shift has to contain one value for each axis.
n : int, optional
If n is negative (default), then the input is assumed to be the result of a complex fft. If n is larger than or equal to zero, the input is assumed to be the result of a real fft, and n gives the length of the array before transformation along the real transform direction.
axis : int, optional
The axis of the real transform.
output : ndarray, optional
If given, the result of shifting the input is placed in this array. None is returned in this case.
fourier_shift : ndarray or None
The shifted input. If output is given as a parameter, None is returned.
>>> from scipy import ndimage, misc
>>> import matplotlib.pyplot as plt
>>> import numpy.fft
>>> fig, (ax1, ax2) = plt.subplots(1, 2)
>>> plt.gray()  # show the filtered result in grayscale
>>> ascent = misc.ascent()
>>> input_ = numpy.fft.fft2(ascent)
>>> result = ndimage.fourier_shift(input_, shift=200)
>>> result = numpy.fft.ifft2(result)
>>> ax1.imshow(ascent)
>>> ax2.imshow(result.real)  # the imaginary part is an artifact
>>> plt.show()