Computes the Fourier transform
#include "dip_transform.h"
dip_Error dip_FourierTransform ( in, out, trFlags, process, theFuture )
binary, integer, float, complex
Performs a Fourier transform on in and places the result in out.
Normalisation: 1/sqrt(dimension) for each dimension.
Defaults: process may be zero, indicating that all dimensions should be processed.
Sampling in Fourier Domain (FD): Let one pixel in the spatial domain (SD) be Delta_SD [m], then one pixel in the FD is Delta_FD = 1/(Delta_SD * N) [m^-1], where N is the width of the image in pixels. As a consequence the maximal frequency in the FD image is N/2 * 1/(Delta_SD * N) = 1/(2 * Delta_SD) [m^-1] and is thus independent of the image width N and only related to the Nyquist frequency. The frequency of one FD pixel is therefore related to the image width N.
Note: In consequence of the above the FD resolution will not be isotropic if the image size are not square.
Note: Spatial zero-padding of the image increases the FD resolution only apparently (empty magnification).
Data type | Name | Description |
dip_Image | in | Input |
dip_Image | out | Output |
dipf_FourierTransform | trFlags | Transform flags |
dip_BooleanArray | process (0) | Dimensions to process |
void * | theFuture | For future use, should be set to zero |
The dipf_FourierTransform enumeration consists of the following flags:
Name | Description |
DIP_TR_FORWARD | Forward transformation |
DIP_TR_INVERSE | Inverse transformation |