The Image.Complex structure


Synopsis

signature IMAGE_COMPLEX
structure Image.Complex : IMAGE_COMPLEX
The Image.Complex structure implements processing and analysis functions specific to complex images (Complex.complex Image.image).

Interface

type image = Complex.complex Array2.array

val fromGrey : Image.Grey.image -> image

val fromRect : (Image.Grey.image * Image.Grey.image) -> image
val toRect : image -> (Image.Grey.image * Image.Grey.image)

val realPart : image -> Image.Grey.image
val imagPart : image -> Image.Grey.image

val fromPolar : (Image.Grey.image * Image.Grey.image) -> image
val toPolar : image -> (Image.Grey.image * Image.Grey.image)

val magnitude : image -> Image.Grey.image
val phase : image -> Image.Grey.image

val toColor : image -> Image.Color.image

val + : image * image -> image
val - : image * image -> image
val * : image * image -> image
val / : image * image -> image

val product : image * image -> image

val shrink : image * real -> image

val convolveRows : Complex.complex vector -> image -> image
val convolveCols : Complex.complex vector -> image -> image
val convolve : Complex.complex Array2.array -> image -> image

val dft : image -> image
val idft : image -> image
val fft : image -> image
val ifft : image -> image

Details

type image = Complex.complex Array2.array
The complex image type.

val fromGrey : Image.Grey.image -> image
Create a complex image from a grey (real) image.

val fromRect : (Image.Grey.image * Image.Grey.image) -> image
val toRect : image -> (Image.Grey.image * Image.Grey.image)
Convert to and from rectangular (real and imaginary parts) images.

val realPart : image -> Image.Grey.image
val imagPart : image -> Image.Grey.image
Return the real or imaginary part of an image.

val fromPolar : (Image.Grey.image * Image.Grey.image) -> image
val toPolar : image -> (Image.Grey.image * Image.Grey.image)
Convert to and from polar (magnitude and phase) images.

val magnitude : image -> Image.Grey.image
val phase : image -> Image.Grey.image
Return the magnitude or phase of an image.

val toColor : image -> Image.Color.image
Converts to a color image, using Hue-Saturation-Value to RGB conversion with the phase of each pixel as the hue, and the normalized magnitude of each pixel as the value.

val + : image * image -> image
val - : image * image -> image
val * : image * image -> image
val / : image * image -> image
Pixel-wise arithmetic of two images.

val product : image * image -> image
Compute the product of two images, as if they are matrices.

val shrink : image * threshold real -> image
Shrink the magnitude of each pixel value in an image. For each pixel value p, if |p| is less than threshold the resultant pixel magnitude will be 0.0, otherwise it will be |p| - threshold.

val convolveRows : kernel Complex.complex vector -> image -> image
Perform row-wise 1D discrete periodic convolution with kernel.

val convolveCols : kernel Complex.complex vector -> image -> image
Perform column-wise 1D discrete periodic convolution with kernel.

val convolve : kernel Complex.complex Array2.array -> image -> image
Perform 2D discrete periodic convolution with kernel.

val dft : image -> image
Compute the two-dimensional Fourier Transform using the (glacially slow) naive algorithm.

val idft : image -> image
Compute the two-dimensional inverse Fourier Transform using the (glacially slow) naive algorithm.

val fft : image -> image
Compute the two-dimensional Fourier Transform using the Cooley-Tukey FFT algorithm. Due to the nature of the algorithm, the number of rows and the number of columns in the input (and output) image must be integer powers of two.

val ifft : image -> image
Compute the two-dimensional inverse Fourier Transform using the Cooley-Tukey FFT algorithm. Due to the nature of the algorithm, the number of rows and the number of columns in the input (and output) image must be integer powers of two.


Last modified: Sat Dec 17 20:09:44 Mountain Standard Time 2005
rlpm [ -at- ] cs.unm.edu