IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Backward Discrete Fourier Transform 2d

Backward Discrete Fourier Transform for an input 2d image. More...

IPSDKIPLINTENSITYTRANSFORM_API image::ImagePtr ipsdk::imaproc::itrans::backwardDiscreteFourierTransform2dImg (const image::ImageConstPtr &pInDFTImg1, const image::ImageConstPtr &pInDFTImg2)
 wrapper function for Backward Discrete Fourier Transform for an input 2d image More...
 
IPSDKIPLINTENSITYTRANSFORM_API image::ImagePtr ipsdk::imaproc::itrans::backwardDiscreteFourierTransform2dImg (const image::ImageConstPtr &pInDFTImg1, const image::ImageConstPtr &pInDFTImg2, const ipsdk::imaproc::attr::DFTConfigConstPtr &pInOptDFTConfig)
 wrapper function for Backward Discrete Fourier Transform for an input 2d image More...
 
IPSDKIPLINTENSITYTRANSFORM_API void ipsdk::imaproc::itrans::backwardDiscreteFourierTransform2dImg (const image::ImageConstPtr &pInDFTImg1, const image::ImageConstPtr &pInDFTImg2, const ipsdk::imaproc::attr::DFTConfigConstPtr &pInOptDFTConfig, const image::ImagePtr &pOutRealImg)
 wrapper function for Backward Discrete Fourier Transform for an input 2d image More...
 

Detailed Description

Backward Discrete Fourier Transform for an input 2d image.

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

In two dimensions, the real part of Backward Discrete Fourier Transformation (BDFT) of input images $ InDFTImg1 $ and $ InDFTImg2 $ with $ S_y $ rows and $ S_x $ columns is defined as the following real image:

\[ bdft(x, y) = Re \left\{ \sum_{k=0}^{S_y}{\sum_{l=0}^{S_x}{InDFTImg(l, k)\exp^{+2\pi i \left (\frac{xl}{S_x}+\frac{yk}{S_y} \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:

backwardDiscreteFourierTransform2dImg.png

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

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

Attributes description

Attribute description for algorithm :

Name ToolTip Default Initializer
ipsdk::imaproc::attr::InDFTImg1 [Input] first element for Discrete Fourier Transform (can be real cartesian part or rho polar part [default] of signal depending on algorithm configuration) X
ipsdk::imaproc::attr::InDFTImg2 [Input] second element for Discrete Fourier Transform (can be imaginary cartesian part or theta polar part [default] of signal depending on algorithm configuration) X
ipsdk::imaproc::attr::InOptDFTConfig [Input Optional] configuration for Discrete Fourier Transform algorithm X
ipsdk::imaproc::attr::OutOptWk1RealGpuImg [Output Optional] Temporary working image for GPU processes (data contained in image buffer are reals) X
ipsdk::imaproc::attr::OutRealImg [Output] image for processing operation (data contained in image buffer are reals) duplicateInOut (_pOutRealImg, _pInDFTImg1, ipsdk::image::eImageBufferType::eIBT_Real32)
ipsdk::imaproc::attr::OutWk1RealImg [Output] Temporary working image for algorithm duplicateInOut (_pOutWk1RealImg, _pInDFTImg1, ipsdk::image::eImageBufferType::eIBT_Real32)

Global Rule description

Global rule description for algorithm :
ipsdk::imaproc::matchSize (_pInDFTImg1,_pInDFTImg2,_pOutRealImg,_pOutWk1RealImg) && 
ipsdk::processor::ifIsSet (_pOutOptWk1RealGpuImg,
 ipsdk::imaproc::noInSitu (_pInDFTImg1,_pOutOptWk1RealGpuImg)) && 
ipsdk::imaproc::noInSitu (_pInDFTImg2,_pOutRealImg)

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.backwardDiscreteFourierTransform2dImg(inImg1, inImg2)

Example of C++ code :

Example informations

Associated library

IPSDKIPLIntensityTransform

Header file

Code Example

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

Function Documentation

◆ backwardDiscreteFourierTransform2dImg() [1/3]

IPSDKIPLINTENSITYTRANSFORM_API image::ImagePtr ipsdk::imaproc::itrans::backwardDiscreteFourierTransform2dImg ( const image::ImageConstPtr pInDFTImg1,
const image::ImageConstPtr pInDFTImg2 
)

wrapper function for Backward Discrete Fourier Transform for an input 2d image

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ backwardDiscreteFourierTransform2dImg() [2/3]

IPSDKIPLINTENSITYTRANSFORM_API image::ImagePtr ipsdk::imaproc::itrans::backwardDiscreteFourierTransform2dImg ( const image::ImageConstPtr pInDFTImg1,
const image::ImageConstPtr pInDFTImg2,
const ipsdk::imaproc::attr::DFTConfigConstPtr pInOptDFTConfig 
)

wrapper function for Backward Discrete Fourier Transform for an input 2d image

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure

◆ backwardDiscreteFourierTransform2dImg() [3/3]

IPSDKIPLINTENSITYTRANSFORM_API void ipsdk::imaproc::itrans::backwardDiscreteFourierTransform2dImg ( const image::ImageConstPtr pInDFTImg1,
const image::ImageConstPtr pInDFTImg2,
const ipsdk::imaproc::attr::DFTConfigConstPtr pInOptDFTConfig,
const image::ImagePtr pOutRealImg 
)

wrapper function for Backward Discrete Fourier Transform for an input 2d image

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionon failure