ImageDev

ComplexCenteredFftInverse

Computes the centered Fast Fourier inverse Transform of an image.

Access to parameter description

For an introduction: see section Frequency Domain.

The ComplexCenteredFftInverse algorithm is used to reconstruct an image after a centered FFT transform.

See also

Function Syntax

This function returns a ComplexCenteredFftInverseOutput structure containing the outputRealImage and outputImaginaryImage output parameters.
// Output structure.
struct ComplexCenteredFftInverseOutput
{
    std::shared_ptr< iolink::ImageView > outputRealImage;
    std::shared_ptr< iolink::ImageView > outputImaginaryImage;
};

// Function prototype.
ComplexCenteredFftInverseOutput
complexCenteredFftInverse( std::shared_ptr< iolink::ImageView > inputRealImage,
                           std::shared_ptr< iolink::ImageView > inputImaginaryImage,
                           std::shared_ptr< iolink::ImageView > outputRealImage = NULL,
                           std::shared_ptr< iolink::ImageView > outputImaginaryImage = NULL );
This function returns a tuple containing the output_real_image and output_imaginary_image output parameters.
// Function prototype.
complex_centered_fft_inverse( input_real_image,
                              input_imaginary_image,
                              output_real_image = None,
                              output_imaginary_image = None )
This function returns a ComplexCenteredFftInverseOutput structure containing the outputRealImage and outputImaginaryImage output parameters.
/// Output structure of the ComplexCenteredFftInverse function.
public struct ComplexCenteredFftInverseOutput
{
    public IOLink.ImageView outputRealImage;
    public IOLink.ImageView outputImaginaryImage;
};

// Function prototype.
public static ComplexCenteredFftInverseOutput
ComplexCenteredFftInverse( IOLink.ImageView inputRealImage,
                           IOLink.ImageView inputImaginaryImage,
                           IOLink.ImageView outputRealImage = null,
                           IOLink.ImageView outputImaginaryImage = null );

Class Syntax

Parameters

Class Name ComplexCenteredFftInverse

Parameter Name Description Type Supported Values Default Value
input
inputRealImage
The real input part image. It must be a floating point image. Image Grayscale or Multispectral nullptr
input
inputImaginaryImage
The imaginary part input image. This image must have same dimensions and data type as the real input image. Image Grayscale or Multispectral nullptr
output
outputRealImage
The output real part image. Its dimensions are forced to the same values as the input. Its data type is forced to floating point. Image nullptr
output
outputImaginaryImage
The output imaginary part image. Its dimensions are forced to the same values as the input. Its data type is forced to floating point. Image nullptr

Object Examples

auto polystyrene_float = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene_float.vip" );

ComplexCenteredFftInverse complexCenteredFftInverseAlgo;
complexCenteredFftInverseAlgo.setInputRealImage( polystyrene_float );
complexCenteredFftInverseAlgo.setInputImaginaryImage( polystyrene_float );
complexCenteredFftInverseAlgo.execute();

std::cout << "outputRealImage:" << complexCenteredFftInverseAlgo.outputRealImage()->toString();
std::cout << "outputImaginaryImage:" << complexCenteredFftInverseAlgo.outputImaginaryImage()->toString();
polystyrene_float = imagedev.read_vip_image(imagedev_data.get_image_path("polystyrene_float.vip"))

complex_centered_fft_inverse_algo = imagedev.ComplexCenteredFftInverse()
complex_centered_fft_inverse_algo.input_real_image = polystyrene_float
complex_centered_fft_inverse_algo.input_imaginary_image = polystyrene_float
complex_centered_fft_inverse_algo.execute()

print( "output_real_image:", str( complex_centered_fft_inverse_algo.output_real_image ) );
print( "output_imaginary_image:", str( complex_centered_fft_inverse_algo.output_imaginary_image ) );
ImageView polystyrene_float = Data.ReadVipImage( @"Data/images/polystyrene_float.vip" );

ComplexCenteredFftInverse complexCenteredFftInverseAlgo = new ComplexCenteredFftInverse
{
    inputRealImage = polystyrene_float,
    inputImaginaryImage = polystyrene_float
};
complexCenteredFftInverseAlgo.Execute();

Console.WriteLine( "outputRealImage:" + complexCenteredFftInverseAlgo.outputRealImage.ToString() );
Console.WriteLine( "outputImaginaryImage:" + complexCenteredFftInverseAlgo.outputImaginaryImage.ToString() );

Function Examples

auto polystyrene_float = readVipImage( std::string( IMAGEDEVDATA_IMAGES_FOLDER ) + "polystyrene_float.vip" );

auto result = complexCenteredFftInverse( polystyrene_float, polystyrene_float );

std::cout << "outputRealImage:" << result.outputRealImage->toString();
std::cout << "outputImaginaryImage:" << result.outputImaginaryImage->toString();
polystyrene_float = imagedev.read_vip_image(imagedev_data.get_image_path("polystyrene_float.vip"))

result_output_real_image, result_output_imaginary_image = imagedev.complex_centered_fft_inverse( polystyrene_float, polystyrene_float )

print( "output_real_image:", str( result_output_real_image ) );
print( "output_imaginary_image:", str( result_output_imaginary_image ) );
ImageView polystyrene_float = Data.ReadVipImage( @"Data/images/polystyrene_float.vip" );

Processing.ComplexCenteredFftInverseOutput result = Processing.ComplexCenteredFftInverse( polystyrene_float, polystyrene_float );

Console.WriteLine( "outputRealImage:" + result.outputRealImage.ToString() );
Console.WriteLine( "outputImaginaryImage:" + result.outputImaginaryImage.ToString() );