TRANSFORM_VOLUME
The purpose of this program is to transform (e.g., rotate, scale, and translate) a 3D array or volume.
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
Mathematics, graphics.
result = TRANSFORM_VOLUME( volume )
volume: The 3D array or volume to be transformed.
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].
result: The transformed array or volume.
None.
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.
Written by: Martin Downing, 16 September 2001. Added MISSING keyword. Removed INPLACE keyword. 25 Nov 2001. MD