ImageFFT.mesa
Copyright (c) 1984, 1985, Xerox Corporation.
Michael Plass, June 27, 1984 2:44:14 pm PDT
Tim Diebert May 21, 1985 6:08:12 pm PDT
DIRECTORY Complex USING [VEC],
ImagerPixelMap USING [PixelMap],
Rope USING [ROPE],
Seq USING [ComplexSequence];
ImageFFT: CEDAR DEFINITIONS ~ BEGIN
Image: TYPE ~ LIST OF ComplexSequence;
Each pixel may be a complex value.
ComplexSequence: TYPE ~ Seq.ComplexSequence;
PixelMap: TYPE ~ ImagerPixelMap.PixelMap;
Error: ERROR [code: ATOM];
FromPixelMap: PROC [pixelMap: PixelMap] RETURNS [a: Image];
Transform: PROC [a: Image, inverse: BOOLEAN];
Mul: PROC [dest, source: Image];
does componentwise multipication.
TransferToPixels: PROC [dest: ImagerPixelMap.PixelMap, source: Image, scalar: REAL];
Transfers the absolute values multiplied by the scalar, clipped to fit.
MakeMask: PROC [a: Image, threshold: REAL] RETURNS [bitmap: PixelMap];
The bitmap has a one bit where the absolute value of the corresponding pixel exceeds the threshold.
ApplyMask: PROC [a: Image, mask: PixelMap];
Forces all the masked pixels to zero.
Store: PROC [image: Image, fileName: Rope.ROPE];
Stores the square image in raw form.
Load: PROC [fileName: Rope.ROPE, scratch: Image ← NIL] RETURNS [Image];
ScalarMul: PROC [a: Image, scalar: Complex.VEC];
Add: PROC [dest, source: Image];
Subtract: PROC [dest, source: Image];
Width: PROC [a: Image] RETURNS [width: NAT];
Height: PROC [a: Image] RETURNS [width: NAT];
Range: PROC [a: Image] RETURNS [xmin, ymin, xmax, ymax: REAL];
MaskedRange: PROC [a: Image, bitmap: PixelMap] RETURNS [xmin, ymin, xmax, ymax: REAL];
Copy: PROC [a: Image, scratch: Image ← NIL] RETURNS [b: Image];
Destroy: PROC [a: Image] RETURNS [Image ← NIL];
Transpose: PROC [a: Image] RETURNS [b: Image];
InSituTranspose: PROC [a: Image];
TransformRows: PROC [a: Image, inverse: BOOLEAN];
END.