TRANSFORM_VOLUME Name
TRANSFORM_VOLUME
Purpose
The purpose of this program is to transform (e.g., rotate,
scale, and translate) a 3D array or volume.
Author
Martin Downing,
Clinical Research Physicist,
Grampian Orthopaedic RSA Research Centre,
Woodend Hospital, Aberdeen, AB15 6LS.
Pnone: 01224 556055 / 07903901612
Fa: 01224 556662
E-mail: m.downing@abdn.ac.uk Category
Mathematics, graphics.
Calling Sequence
result = TRANSFORM_VOLUME( volume ) Inputs
volume: The 3D array or volume to be transformed.
Optional Keywords
BUFFER_SIZE: To reduce memory overhead the routine processes the job in chunks, the number
of elements of which can be set using the BUFFER_SIZE keyword, set this keyword to
0 to force the whole array to be processed at one time. The default value is 128.
MISSING: The value to return for transformed values outside the bounds of
the volume. (Passed to the INTERPOLATE function.) Default is 0.
T3DMAT: The homogeneous transforamtion matrix. If this keyword is not present,
the following keywords can be used to create a homogeneous transformation matrix:
ROTATION - The rotation vector [rx,ry,rz]. The order of rotation is ZYX.
TRANSLATE - The translation vector [tx,ty,tz].
SCALE - The scale vector [sx,sy,sz].
CENTRE_ROTATION - The centre of rotation [cx,cy,cz].
Outputs
result: The transformed array or volume.
Common Blocks
None. Dependencies
The program uses the library INTERPLOLATE routine, which currently (IDL 5.4)
uses linear interpolation. Note that the operation is performed in chunks,
each of which is independant of the result of the others, so the operation
could easiliy be parallelised.
Modification History
Written by: Martin Downing, 16 September 2001.
Added MISSING keyword. Removed INPLACE keyword. 25 Nov 2001. MD