Help for IFFT
PURPOSE:
"ifft" allows the user to interactively and selectively modify areas of an FFT.
EXECUTION:
Example
TAE> ifft inp=scr:fft out=(scr:tmpfil,scr:newfft)
(Parameters are allowable in the command line.)
REFORMATTING INPUT
(A couple minutes will elapse, then the FFT will be drawn on the
allocated display device.)
IFFT READY
Enter Parameters:
(The program is now waiting for one of two types of input.
The first type of input is one of the normal commands.
Commands are available to set the shape and dimensions of
the area to be modifed (CIRCLE, RECTANGL, VERTEX mode), to move
the cursor (PCURS, WCURS), read the DN value and position of the
cursor (RCURS), or adjust the display (SLDS, SSDS, U, D, L, R).
The user can also display the phase picture ('PHASE) rather than
the default amplitude picture ('AMPLITUD), or can specify that
points outside of the defined area ('EXTERIOR) are to be changed
rather the points inside (reset by 'INTERIOR). Finally, points
within the defined area can be multiplied by a factor (MULTIPLY)
and/or increased or decreased by a constant (ADD).
The second type of input is a simple RETURN, which tells the
program to go ahead and accept an area definition from the
trackball and perform the modification.
The default modification area is a circle, 10 pixels in
radius; points inside are multiplied by 0.10. Whenever the
modification function is changed, the program will print out
the complete status; e.g., if you use the ADD command immediately
after entering the program, IFFT will show that 'INTERIOR, CIRCLE=10,
and MULT=0.10 are in effect.)
Enter Parameters: CIRCLE=20 MULT=0.0 ADD=45
TRANSFORM MODIFICATION IN EFFECT:
CIRCLE 20 INTERIOR MULT 0.00
Enter Parameters: (Press RETURN to define area)
POSITION THE CURSOR AND PRESS <CR>
(Position the cursor using the trackball and press <CR>.
The program will draw a circle around the specified
point and come back with ...)
OK ? HIT <CR> IF OK OR TYPE NO TO REDO
Enter Parameters: (Press RETURN)
("ifft" will perform the mod and return)
Enter Parameters:'EXIT
WRITING OUTPUT
(Several minutes will elapse during output)
TAE>
OPERATION:
Sequence of steps:
1. Process command line parameters (MAIN44)
2. Copy input FFT into temporary dataset (DSRN 1), reformatting the data
so that DC is moved from the upper-left corner to the center (FFT_FORMAT).
3. Display the FFT (DISPLY)
4. Get parameters from user and process as appropriate (KEYWRD).
If none, goto step 9.
5. If the display needs to be refreshed (e.g., user changed display format
using SS, SSDS, et al.) redisplay screen (DISPLY).
6. If user changed modification area shape, size, or handling, print current
status.
7. If cursor position is to be read or changed, do it (CURSOR).
8. If done, copy temporary file into output file, moving DC back to the
upper-left corner, and exit the program. Otherwise, goto step 4.
9. Modify mode (MODIFY):
a. Get trackball location
b. If circle or rectangle, draw shape at current location and goto d.
c. If vertex mode, see if first point. If so, get next at a.
If middle point and not same as the last, draw segment to last
point and get next point at a. (3000 points are allowed.)
If same point as last time, complete polygon.
d. Prompt user to accept or reject area. If rejected, goto step 4.
Otherwise, perform current modifications on area and goto 4.
NOTE: Initialization of displays via the VRDI XDGLINIT function sometimes
does not work on the Unix platforms. This was per discussions with Bob
Deen and E. Cruz on 30 May 1994. Should the display not appear correct,
the following two work arounds were suggested: 1) Click on the display
screen, or 2) restart the display. Usually item 1 will cause the display
to be reinitialized properly.
WRITTEN BY: John Reimer, May 1983
COGNIZANT PROGRAMMER: John Reimer
REVISION: New
REVISION: Made portable for UNIX ... V. Unruh ... (CRI) (May 8, 1995)
22-04-98....RRP Removed constant IMP from call to XDIFILL and replaced
with GRAPHICSPLANE variable which gets its value from
XDSGRAPH subroutine.
16-07-98....RRP Added INTEGER XDSGRAPH to implie that the function returns
a integer value and not a float (AR-100438).
PARAMETERS:
INP
STRING - Input FFT
OUT
STRING - Output FFT
SIZE
INTEGER - Standard VICAR size field
SL
INTEGER - Starting line
SS
INTEGER - Starting sample
NL
INTEGER - Number of lines
NS
INTEGER - Number of samples
EXIT
KEYWORD - Creates output file and exits program.
SLDS
INTEGER - Starting line on display
SSDS
INTEGER - Starting sample on display
U
INTEGER - Number of pixels to move window (up)
D
INTEGER - Number of pixels to move window (down)
L
INTEGER - Number of pixels to move window (left)
R
INTEGER - Number of pixels to move window (right)
THRESH
REAL - Complex->Byte conversion factor (see HELP detail)
CMULTIPL
REAL - Complex->Byte conversion factor (see HELP detail)
AMPLITUD
KEYWORD - Use amplitude picture (default)
PHASE
KEYWORD - Use phase picture
CIRCLE
INTEGER - Changes modification shape to be a circle of the specified radius.
RECTANGL
INTEGER - Specifies NL and NS for rectangle as modification shape.
VERTEX
KEYWORD - Changes to vertex (dynamic polygon definition) mode.
INTERIOR
KEYWORD - Modify points within the defined area (default).
EXTERIOR
KEYWORD - Modify points outside of the defined area.
MULT
REAL - Factor by which to multiply DN's in modification area.
ADD
REAL - Number to add to DN's in modification area.
RCURSOR
KEYWORD - Read location and DN value of cursor.
WCURSOR
INTEGER - Line and sample coordinates on screen for cursor position.
PCURSOR
INTEGER - Line and sample coordinates in image for cursor position.
POSITION
INTEGER - POSITION=(ld,sd)
Use (ld,sd) as (image) line
and sample cursor coordinates.
See Examples:
Cognizant Programmer: