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 outputRealImage and outputImaginaryImage.
// Output structure of the complexCenteredFftInverse function.
struct ComplexCenteredFftInverseOutput
{
    /// The output real part image. Its dimensions are forced to the same values as the input. Its data type is forced to floating point.
    std::shared_ptr< iolink::ImageView > outputRealImage;
    /// The output imaginary part image. Its dimensions are forced to the same values as the input. Its data type is forced to floating point.
    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 output_real_image and output_imaginary_image.
// 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 outputRealImage and outputImaginaryImage.
/// Output structure of the ComplexCenteredFftInverse function.
public struct ComplexCenteredFftInverseOutput
{
    /// 
    /// The output real part image. Its dimensions are forced to the same values as the input. Its data type is forced to floating point.
    /// 
    public IOLink.ImageView outputRealImage;
    /// 
    /// The output imaginary part image. Its dimensions are forced to the same values as the input. Its data type is forced to floating point.
    /// 
    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

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
Parameter Name Description Type Supported Values Default Value
input
input_real_image
The real input part image. It must be a floating point image. image Grayscale or Multispectral None
input
input_imaginary_image
The imaginary part input image. This image must have same dimensions and data type as the real input image. image Grayscale or Multispectral None
output
output_real_image
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 None
output
output_imaginary_image
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 None
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 null
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 null
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 null
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 null

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() );