IPSDK 4.2
IPSDK : Image Processing Software Development Kit
Forward Discrete Fourier Transform 3d
img1,img2 = forwardDiscreteFourierTransform3dImg (inImg3d)
img1,img2 = forwardDiscreteFourierTransform3dImg (inImg3d,inOptDFTConfig)

Detailed Description

Forward Discrete Fourier Transform for an input 3d image.

This algorithm allows to compute the Forward Discrete Fourier Transformation of an input 3d image $ InImg3d $.

In three dimensions, the Forward Discrete Fourier Transformation (FDFT) of input image $ InImg3d $ with size $\left \{ S_x, S_y, S_z \right \} $ is defined as following complex image:

\[ fdft(x, y, z) = \sum_{j=0}^{S_z}{\sum_{k=0}^{S_y}{\sum_{l=0}^{S_x}{InImg3d(l, k, j)\exp^{-2\pi i \left (\frac{xl}{S_x}+\frac{yk}{S_y}+\frac{zj}{S_z} \right )}}}} \]

On output this complex image is represented by a couple of images $ OutDFTImg1 = Re(fdft) $ and $ OutDFTImg2 = Im(fdft) $ (user should note that this is not the default output representation, see below).

A common 'user friendly' representation of FDFT results consists in:

Output images $ OutDFTImg1 $ and $ OutDFTImg2 $ are then modified in function.

Input parameter $ InDFTConfig $ allows to setup:

The following image is an illustration of Forward Discrete Fourier Transformation results in case of polar coordinates, centered quadrants policy and default scale (which is the default configuration):

forwardDiscreteFourierTransform3dImg.png
See also
https://en.wikipedia.org/wiki/Discrete_Fourier_transform

Example of Python code :

Example imports

import PyIPSDK
import PyIPSDK.IPSDKIPLIntensityTransform as itrans

Code Example

# opening of input image
inImg = PyIPSDK.loadTiffImageFile(inputImgPath)
# Forward Discrete Fourier Transform of input image
outImg1, outImg2 = itrans.forwardDiscreteFourierTransform3dImg(inImg)

Example of C++ code :

Example informations

Header file

#include <IPSDKIPL/IPSDKIPLIntensityTransform/Processor/ForwardDiscreteFourierTransform3dImg/ForwardDiscreteFourierTransform3dImg.h>

Code Example

// opening of input image
ImagePtr pInImg = loadTiffImageFile(inputImgPath);
// Forward Discrete Fourier Transform of input image
ForwardDFTImg forwardDFTImg = forwardDiscreteFourierTransform3dImg(pInImg);