In file mydocsrc/iml_ndim.h:

template class iml_complex_image : public iml_vector_image

A template image class for complex images

Inheritance:

iml_complex_image < iml_vector_image < iml_typed_image < iml_image


Public Methods

IML_BYTE forward_FFT (IML_SINT RemapFlag = TRUE)
Do a forward FFT on the complex image
void fourier_domain ()
Tell the complex image that it is in the Fourier (frequency) domain
CC IML_REF frequency (IML_LINT Axis0Index, ...)
Index the complex image by "frequency" coordinates.
iml_complex_image IML_REF imaginary (void)
Signals that the next image operation will involve the imaginary part
iml_complex_image (IML_USINT XSize, IML_USINT YSize)
Simple 2-D image constructor
iml_complex_image (const iml_index IML_REF Dimensions)
General, n-D image constructor
iml_complex_image (const iml_complex_image IML_REF TrueImage)
A constructor that implements image aliasing
iml_complex_image (IML_USINT XSize)
Simple 1-D image constructor
iml_complex_image (IML_USINT X0, IML_USINT X1, IML_USINT X2, IML_USINT X3)
Simple 4-D image constructor
iml_complex_image (IML_USINT XSize, IML_USINT YSize, IML_USINT TSize)
Simple 3-D image constructor
IML_BYTE inverse_FFT (IML_SINT RemapFlag = TRUE)
Do an inverse FFT on the complex image
iml_complex_image IML_REF magnitude (void)
Signals that the next image operation will involve magnitude
void min_max_element (IML_DOUBLE &Min, IML_DOUBLE &Max)
Find the min and max values of the requested part of the image
void modulate (void)
Multply this image by the highest frequency sinusoid
void non_fourier_domain ()
Tell the complex image that it is in the space-time (whatever ) domain
iml_complex_image IML_REF phase (void)
Signals that the next image operation will involve phase
iml_complex_image IML_REF real (void)
Signals that the next image operation will involve the real part
void scale_elements (IML_DOUBLE Min, IML_DOUBLE Max)
Scale the requested part of the image to be from Min to Max (inclusive)
void use_n_in_scaling (void)
Divide by N, where N is the number of pixels, on forward FFT and do no division on inverse FFT
void use_n_out_scaling (void)
Divide by N, where N is the number of pixels, on inverse FFT and do no division on forward FFT
void use_root_n_scaling (void)
Divide by sqrt(N), where N is the number of pixels, on both forward and inverse FFT

Inherited from iml_vector_image:


Inherited from iml_typed_image:

Public Methods

T IML_REF fa(IML_LINT Axis0Index, IML_LINT Axis1Index, IML_LINT Axis2Index, IML_LINT Axis3Index)
T IML_REF fa(IML_LINT Axis0Index, IML_LINT Axis1Index, IML_LINT Axis2Index)
T IML_REF fa(IML_LINT Axis0Index, IML_LINT Axis1Index)
T IML_REF hp_fa(IML_LINT Axis0Index, ...)
iml_image_type image_type(void)
T IML_REF operator()(IML_ULINT Index)
T IML_REF operator()(IML_LINT Axis0Index, IML_LINT Axis1Index, ...)
T IML_REF operator()(iml_index IML_REF ImIndex)
T IML_REF operator[](IML_LINT Index)
IML_BYTE valid_memory(void)

Inherited from iml_image:

Public Methods

IML_ULINT byte_order_signature(void)
IML_ULINT dimension_size(IML_USINT Dim)
IML_ULINT dimension_start(IML_USINT Dim)
IML_ULINT dimensionality(void)
IML_ULINT element_count(void)
IML_ULINT get_hyperplane_size(void)
IML_ULINT hyperplane_dimension_size(IML_USINT Dim)
IML_ULINT hyperplane_dimension_start(IML_USINT Dim)
IML_ULINT hyperplane_dimensionality(void)
IML_ULINT hyperplane_element_count(void)
void select_hyperplane(IML_LINT FirstSuperAxisIndex, ...)
void set_hyperplane_size(IML_USINT OSSpace)
void shift_hyperplane_corner_by(IML_USINT Dim, IML_AXIS_TYPE V)
void shift_hyperplane_corner_to(IML_USINT Dim, IML_AXIS_TYPE V)

Documentation

A template image class for complex images. Provides various basic mathematical operations and manipulations. See the documentation for class iml_typed_image for details about these. This class also includes forward and inverse FFT's.
iml_complex_image(const iml_complex_image IML_REF TrueImage)
A constructor that implements image aliasing. That is, it creates a an image that shares the same memory segment as the image in the argument of the constructor. Use this when you want to use part of a larger image as scratch space, or want to access different hyperplanes of one image simultaneously.

void modulate(void)
Multply this image by the highest frequency sinusoid. Do this *before* forward_FFT() to shift the image so that the origin is in the center of the image. Can then be use after inverse_FFT() to put the image back to normal. This is done by forward_FFT() and inverse_FFT() when the input argument is TRUE.

IML_BYTE forward_FFT(IML_SINT RemapFlag = TRUE)
Do a forward FFT on the complex image. If RemapFlag is true, then modulate() is used to shift zero-frequency to the center of the image, and image indexing is changed to be from (-N/2) to (N/2)-1 for all hyperplane dimensions.
Returns:
Returns FALSE on error, TRUE on successful completion.

IML_BYTE inverse_FFT(IML_SINT RemapFlag = TRUE)
Do an inverse FFT on the complex image. If RemapFlag is true, then modulate() is used to shift zero-frequency from the center of the image, and image indexing is changed to be from 0 to N-1 for all hyperplane dimensions.
Returns:
Returns FALSE on error, TRUE on successful completion.

CC IML_REF frequency(IML_LINT Axis0Index, ...)

Index the complex image by "frequency" coordinates, assuming that the image is in the Fourier domain. If not, an error message is printed and no action is taken. The function also assumes that the index range has not been changed by forward_FFT(TRUE); that is, index ranges are [0..N-1] for all dimensions (where N is the dimension size). You can use this, for example, to create a Fourier domain complex image, fill it's elements with a Fourier representation, then use inverse_FFT(FALSE) to produce a "space-domain" image.

Returns:
A reference to the complex number requested.

void min_max_element(IML_DOUBLE &Min, IML_DOUBLE &Max)
Find the min and max values of the requested part of the image.
Returns:
Min and Max hold the appropriate values when the function returns.


This class has no child classes.

alphabetic index hierarchy of classes


generated by doc++