Slice

DESCRIPTION

This module slices a uniform 3D lattice by taking regular samples on a cutting plane. The plane can have any orientation, passed in as a transform. The output lattice will be of the same datatype and number of channels as the input lattice.

The sampling rate onto the output lattice will be 2Resolution samples over the diagonal of the 3D input lattice. However, the output lattice will be clipped to minimize the number of samples outside the volume. For a given resolution, the sampling rate will remain the same, but the size of the output lattice will vary.

The output lattice is created with uniform coordinates. A transform is also output from this module that will convert the output lattice coordinates back into the coordinate space of the input volume. This avoids using more expensive curvilinear coordinates.

INPUTS

Port: Input
Type: Lattice
Constraints: 3-D.
uniform.
This is the volume to be sliced.

Port: Transform In
Type: Lattice
Constraints: 2-D.
1-vector.
float.
This is a 4x4 transformation matrix. This matrix transforms the slice plane, which is initially located parallel to the XY plane, passing through the center of the input volume. This matrix should be a pure rotation matrix, with no scaling, translation, or skew. The TransformGen module is commonly used to produce this input.

WIDGETS

Port: Offset
Type: Dial
This is the offset of the slice from the center of the volume. The direction is always taken normal to the slice plane. The range is normalized to the length of the volume diagonal.

Port: Resolution
Type: Slider
The resolution (log base 2) of the slice along the volume diagonal. This indirectly controls the size of the output lattice.

Port: Interp Type
Type: Radio Box
Menu Item: Point
Menu Item: TriLinear
This controls the type of subvoxel interpolation. .RS 1i .PD 0 .TP 0 Nearest neighbor interpolation .TP 1 Trilinear interpolation .PD .RE

Port: Coordinates
Type: Radio Box
Menu Item: Uniform coords
Menu Item: Curvilinear coords
This controls whether the curvilinear coordinates of the slice are generated.

OUTPUTS

Port: Output
Type: Lattice
Constraints: 2-D.
This is the output slice plane. It will have the same data type and number of data variables as the input volume.

Port: Transform Out
Type: Lattice
Constraints: 2-D.
1-vector.
float.
This 4x4 transform takes the output slice plane back into the coordinate space of the original input volume.

PROBLEMS

If the slice does not intersect the volume, no new lattice is output. Once this happens, the firing algorithm can become confused so that modules that read the output lattice and transform will not receive these data in sync.

If this module happens to receive a volume that does not have uniform coordinates (which can happen if the upstream module can put out both uniform and nonuniform coordinates), the volume is sliced as if it did have uniform coordinates.

The value of Offset is not directly related to the coordinate space of the data. Offset is normalized so that the range [-1..1], will span the entire input volume. That is, if the slice is oriented perpendicular to a diagonal of the volume, offsets of -1 and 1 will slice through opposite corners of the volume.

SEE ALSO

ProbeLattice OrthoSlice LatToGeom TransformGen
[ Documentation Home ]
© The Numerical Algorithms Group Ltd, Oxford UK. 1996