BoundingBoxInReferenceSystem

MacroModule
author Christian Schumann
package FMEstable/ReleaseMeVis
definition BoundingBoxInReferenceSystem.def
see also Reformat
keywords Reformat, complete, image, BoundingBox, union, coordinate, system

Purpose

The BoundingBoxInReferenceSystem module computes the smallest SubImage of input1 that would contain all (reformated) voxels of input0. Hence, the result is the bounding box of input0 in the coordinate system of input1. The voxel values are 0; a reformation is not applied! This module can be of use if you want to reformat the complete voxel data of image A to the coordinate system of image B. Simply applying the Reformat module would discard all voxels of image A that would not be covered by the bounding box of image B. Another possible application is the computation of a bounding box that that covers two (arbitrary rotated) images (in combination with the MergeRegions module; see Example Network) or in general for bounding box arithmetic of two arbitrary oriented volumes.

Usage

Connect the image A to the input0. This is the image (box) that should be completely included in the resulting subimage. Connect the image B to the input1. This image defines the coordinate system of the result image. Use output0 as reference image for reformations.

Windows

Default Panel

../../../Projects/BoundingBoxInReferenceSystem/Modules/mhelp/Images/Screenshots/BoundingBoxInReferenceSystem._default.png

Input Fields

input0

name: input0, type: Image

Image to be reformated.

input1

name: input1, type: Image

Reference image.

Output Fields

output0

name: output0, type: Image

Bounding box of template image in the coordinate system of reference image.

Parameter Fields

Field Index

[]: Trigger Status Message: String
Bounding Box Mode: Enum Update: Trigger
Clear: Trigger Zero Image Data: Bool
doNotClearOnFailedUpdate: Bool  
Has Valid Output: Bool  
On Input Change Behavior: Enum  
Output Bounding Box Mode: Enum  
Status Code: Enum  

Visible Fields

Bounding Box Mode

name: inBoundingBoxMode, type: Enum, default: VoxelVolume, deprecated name: boundingBoxMode,inputBoundingBoxMode

Defines what the bounding boxes should cover.

Values:

Title Name
Voxel Volume VoxelVolume
Voxel Center VoxelCenter
Lower Voxel Corner LowerVoxelCorner
Upper Voxel Corner UpperVoxelCorner

Output Bounding Box Mode

name: inOutputBoundingBoxMode, type: Enum, default: Round, deprecated name: outputBoundingBoxMode

Defines how the voxels are sampled in the output image.

Values:

Title Name
Round Round
Round And Grow By One Voxel RoundAndGrowByOneVoxel

Zero Image Data

name: inZeroImageData, type: Bool, default: FALSE, deprecated name: zeroImageData

Defines if the image data of the output image is zero.

Update

name: update, type: Trigger

Initiates update of all output field values.

Clear

name: clear, type: Trigger

Clears all output field values to a clean initial state.

On Input Change Behavior

name: onInputChangeBehavior, type: Enum, default: Clear, deprecated name: shouldUpdateAutomatically,shouldAutoUpdate,autoUpdate

Declares how the module should react if a value of an input field changes.

Values:

Title Name Deprecated Name
Update Update TRUE
Clear Clear FALSE

[]

name: updateDone, type: Trigger, persistent: no

Notifies that an update was performed (Check status interface fields to identify success or failure).

Has Valid Output

name: hasValidOutput, type: Bool, persistent: no

Indicates validity of output field values (success of computation).

Status Code

name: statusCode, type: Enum, persistent: no

Reflects module’s status (successful or failed computations) as one of some predefined enumeration values.

Values:

Title Name
Ok Ok
Invalid input object Invalid input object
Invalid input parameter Invalid input parameter
Internal error Internal error

Status Message

name: statusMessage, type: String, persistent: no

Gives additional, detailed information about status code as human-readable message.

Hidden Fields

doNotClearOnFailedUpdate

name: doNotClearOnFailedUpdate, type: Bool, persistent: no

Prevents automated clear after update failed. This does not affect status fields. It enables the developer to analyze module’s state after failure.