MPRLight

MLModule
genre Resample
status stable
author Florian Link
package MeVisLab/Standard
dll MLResample1
definition MLResample1.def
see also MPR, MPRPath, OrthoMPR, Reformat

Purpose

The module MPRLight calculates a multiplanar reformatted image from its input image.

The reformatting requires sampling of the input image, which can be done with different filters. The MPR is optimized (using fixpoint arithmetic) for int8 and int16 types, but has a fallback implementation for the other basic datatypes.

Depending on the Memory Access mode, it uses different strategies to access the input image.

In contrast to the module MPR, this module does not offer an Open Inventor output and is not meant to be used in an interactive context.

Usage

Have a look at the module MPR for further information.

Windows

Default Panel

../../../Modules/ML/MLResample1/mhelp/Images/Screenshots/MPRLight._default.png

Input Fields

input0

name: input0, type: Image

Input image from which an MPR is computed.

Output Fields

output0

name: output0, type: Image

Provides the MPR image slice (or slice stack if Output Depth > 1).

Parameter Fields

Field Index

Aspect Ratio: Float Memory Access: Enum Translation: Vector3
Axial: Trigger Output Depth: Integer  
Coronal: Trigger Output Size: Integer  
Enable Plane Edit: Bool Plane: Plane  
Field Of View: Float Represent Input Slice: Trigger  
Fill Value: Double Rotation: Rotation  
Force Upright: Bool Sagittal: Trigger  
Interpolation: Enum Slice No.: Integer  

Visible Fields

Rotation

name: rotation, type: Rotation, default: 0 0 1 0

Sets the rotation of the MPR slice, mapping the world X-, Y-, and Z-axes to the MPR image's X-, negative Z-, and Y-axes, respectively.

The easiest way to edit the rotation is to use an OpenInventor dragger and connect its rotation field to this parameter.

Translation

name: translation, type: Vector3, default: 0 0 0

Sets the translation vector to the center of the (first) MPR slice (in world coordinates).

Plane

name: plane, type: Plane, default: 0 0 1 0

Sets the plane containing the first slice of the MPR output image.

Enable Plane Edit

name: enablePlaneEdit, type: Bool, default: FALSE

If checked, the Plane field can be used as an input field.

Incremental modifications of the Plane field are transformed to modifications of the Rotation and Translation parameters.

Fill Value

name: fillValue, type: Double, default: 0, deprecated name: fillvalue

Sets the value used for regions outside of the input image.

Field Of View

name: fieldOfView, type: Float, default: 100

Sets the extent of the MPR slice in the world coordinate system (in mm).

Output Size

name: outputSize, type: Integer, default: 256, minimum: 1

Sets the resolution of the output slice (X,Y) in pixels.

Output Depth

name: outputDepth, type: Integer, default: 1, minimum: 1

Sets the depth (Z size) of the output image.

If set to 1, a single slice is generated. If set to a value > 1, the output image is a stack of MPR's, where the translation defines the center of the first slice.

Aspect Ratio

name: aspectRatio, type: Float, default: 1

Sets the aspect ratio of the MPR.

Values larger than 1.0 produce portrait, smaller than 1.0 landscape output.

Force Upright

name: forceUpright, type: Bool, default: FALSE, deprecated name: useUpVector

If checked, the MPR slice's Y-axis is forced to be close to the world Y-axis (or Z-axis if the MPR slice normal is parallel to the Y-axis).

Slice No.

name: inputSliceNo, type: Integer, default: 0

Sets the slice number to be reproduced by the Represent Input Slice trigger.

Represent Input Slice

name: representInputSlice, type: Trigger

If pressed, Field Of View, Output Size, Aspect Ratio, Translation, and Rotation are adjusted such that the output exactly matches the input slice number Slice No..

Axial

name: axial, type: Trigger

If pressed, the MPR is set to axial (transversal) orientation.

Sagittal

name: sagittal, type: Trigger

If pressed, the MPR is set to sagittal orientation.

Coronal

name: coronal, type: Trigger

If pressed, the MPR is set to coronal orientation.

Interpolation

name: interpolation, type: Enum, default: Trilinear, deprecated name: Mode

Defines the interpolation used for resampling.

Values:

Title Name Description
Nearest Neighbor NearestNeighbor

No interpolation, picks the nearest input image voxel.

Fastest mode.

Trilinear Trilinear

Trilinear filtering. The 8-voxel-neighborhood is used for linear interpolation.

Slowest mode.

Trilinear Skip Border TrilinearSkipBorder

Same as Trilinear, but all output voxels that depend on a voxel outside of the input image are filled with Fill Value.

Faster than Trilinear.

Memory Access

name: memoryAccess, type: Enum, default: Global, deprecated name: pagedInputImage

Defines how the module accesses the input image.

Values:

Title Name Deprecated Name Description
Paged Paged TRUE

Slower than global, except for small MPR's in large input images. The output MPR is split into tiles that are processed individually. For each tile, the module requests the corresponding 3D region of the input image.

If not enough memory is available, the module falls back to Virtual Volume access.

Global Global FALSE

Fastest, but highest memory cosumption and initialization time. The input image is accessed as a global image (via the ML memory image). This consumes a lot of memory for large datasets.

If not enough memory is available, the module falls back to the Virtual Volume memory access.

Virtual Volume VirtualVolume   Slowest, but works on huge datasets. All pages of the input image are requested via the virtual volume mechanism, thus only small portions of the input image are needed at the same time.