IPSDK 4.1.0.2
IPSDK : Image Processing Software Development Kit
Backward Discrete Fourier Transform 3d
imagebackwardDiscreteFourierTransform3dImg (inDFTImg3d1,inDFTImg3d2)
imagebackwardDiscreteFourierTransform3dImg (inDFTImg3d1,inDFTImg3d2,inOptDFTConfig)

Detailed Description

Backward Discrete Fourier Transform for an input 3d image.

This algorithm allows to compute the real part of Backward Discrete Fourier Transformation of an input complex 3d image reprensented by its two components $ InDFTImg3d1 $ and $ InDFTImg3d2 $.

In three dimensions, the real part of Backward Discrete Fourier Transformation (BDFT) of input images $ InDFTImg3d1 $ and $ InDFTImg3d2 $ with size $\left \{ S_x, S_y, S_z \right \} $ is defined as the following real image:

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

This transformation allows to retrieve forward domain and can be usefull for example in case of filtering of Fourier Frequencies. The following image is an illustration of Backward Discrete Fourier Transformation results:

backwardDiscreteFourierTransform3dImg.png

As in case of Forward Discrete Fourier Transform (see Forward Discrete Fourier Transform 3d), $InDFTConfig$ parameter allows to setup:

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 images
inImg1 = PyIPSDK.loadTiffImageFile(inputImgPath1)
inImg2 = PyIPSDK.loadTiffImageFile(inputImgPath2)
# Backward Discrete Fourier Transform of input images
outImg = itrans.backwardDiscreteFourierTransform3dImg(inImg1, inImg2)

Example of C++ code :

Example informations

Header file

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

Code Example

// opening of input images
ImagePtr pInImg1 = loadTiffImageFile(inputImgPath1);
ImagePtr pInImg2 = loadTiffImageFile(inputImgPath2);
// Backward Discrete Fourier Transform of input images
ImagePtr pOutImg = backwardDiscreteFourierTransform3dImg(pInImg1, pInImg2);