IPSDK 0.2
IPSDK : Image Processing Software Development Kit
Forward Discrete Fourier Transform 3dSee full documentation
img1,img2forwardDiscreteFourierTransform3dImg (inImg3d)
img1,img2forwardDiscreteFourierTransform3dImg (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);