NormalizeGeometry¶
-
MacroModule
¶ genre Geometry
author Jan-Martin Kuhnigk
package FMEstable/ReleaseMeVis
definition NormalizeGeometry.def see also NormalizeOrthoOrientation
,OrthoSwapFlip
,Resample3D
,Reformat
keywords ROI
,Resample
,Geometry
,Reformat
Purpose¶
The module NormalizeGeometry
can be used to “normalize” input images for algorithms which have require standardized input in terms of:
- Axis Orientation (sagittal, coronal or transversal view)
- Voxel Size
- Highly anisotropic voxels
- Very high resolutions
Normalization of axis orientation and limitation of voxel anisotropy may be required to ensure proper functionality of algorithms, limitation of the voxel resolution is typically required in industry deliveries to ensure reasonable processing times even in cases of extremely high scan resolutions or large VOIs.
Usage¶
Connect a valid ML image to inImage
and configure axis normalization and resampling parameters as desired.
Details¶
Resampling is controlled in the following way:
- Check anisotropy and total voxel count thresholds
- If any of the two thresholds is activated and violated by the input image calculate a new image extent:
- Upsample axes with lower resolutions to highest axis resolution to make isotropic voxels
- Symmetrically downsample all axes to meet maximum voxel count
- Check difference of new and original image extents per axis, reset differences below
Skip Resampling If Resampled Image Size Differs By No More Than
Input Fields¶
Output Fields¶
outImage¶
-
name:
outImage
, type:
Image
, deprecated name:
output0
¶ This output provides the axis normalized and resampled image.
outImageOrientationNormalized¶
-
name:
outImageOrientationNormalized
, type:
Image
, deprecated name:
output1
¶ This output provides access to an axis normalized version of the image without resampling applied. This can be useful e.g. for visualizing algorithm results as overlay on the axis normalized image with original resolution.
Parameter Fields¶
Field Index¶
Basic Geometry : Enum |
Normalization Active : Bool |
Use memory image : Bool |
Clear : Trigger |
On input change : Enum |
|
Downsample if (resampled) image size would exceed : Bool |
Resample if anisotropy (=maxVoxelSize/minVoxelSize) exceeds : Bool |
|
enableLogging : Bool |
Resampling Active : Bool |
|
Has Valid Output : Bool |
Resampling Filter : Enum |
|
Max Anisotropy : Double |
Skip Resampling If Resampled Image Size Differs By No More Than : Integer |
|
Max Cubic Voxel Count : Integer |
Target Voxel Size [mm] : Vector3 |
|
Normalizate Orientation : Enum |
Update : Trigger |
Visible Fields¶
On input change¶
-
name:
updateMode
, type:
Enum
, default:
AutoUpdate
¶ Configure the update behaviour upon changes to the input image.
Values:
Title | Name |
---|---|
Clear | AutoClear |
Update | AutoUpdate |
Normalizate Orientation¶
-
name:
normalizationMode
, type:
Enum
, default:
Off
¶ Select whether and how to normalize the axis orientation of the image. See
NormalizeOrientation
for details.
Values:
Title | Name |
---|---|
Off | Off |
Transversal | Transversal |
Coronal | Coronal |
Sagittal | Sagittal |
Use memory image¶
-
name:
useMemoryImage
, type:
Bool
, default:
FALSE
¶ Select whether or not to use a memory image for resampling. May improve performance but requires more memory. Use this with caution especially when large input images may occur.
Normalization Active¶
-
name:
normalizationEnabled
, type:
Bool
, persistent:
no
¶ Output parameter indicating whether or not axis reformatting is actually applied. If axis orientation normalization is disabled or the input image already has the correct axis orientation now reformatting takes place. Read only.
Basic Geometry¶
-
name:
targetResolutionBasedOn
, type:
Enum
, default:
TargetVoxelSize
¶ Defines which where the target geometry is derived from.
Values:
Title | Name | Description |
---|---|---|
In Image Resolution | InImageResolution | Keep the input image’s (inImage ) voxel size and extent (and then possibly apply modificators) |
Target Voxel Size | TargetVoxelSize | Go for the voxel size specified in Target Voxel Size [mm] (and then possibly apply modifiers) |
Target Voxel Size [mm]¶
-
name:
targetVoxelSize_mm
, type:
Vector3
, default:
1 1 1
, deprecated name:
targetVoxelSize
¶ Target voxel size in mm, used if
Basic Geometry
is “TargetVoxelSize”.
Resample if anisotropy (=maxVoxelSize/minVoxelSize) exceeds¶
-
name:
enableAnisotropyLimit
, type:
Bool
, default:
FALSE
¶ Enable or disable the anisotropy threshold used to determine whether resampling is required or not.
Max Anisotropy¶
-
name:
maxAnisotropy
, type:
Double
, default:
1.5
, minimum:
1
¶ The maximal anisotropy (ratio of largest vs. smallest voxel edge length) that is allowed in the output image. If this ratio is exceeded and
Resample if anisotropy (=maxVoxelSize/minVoxelSize) exceeds
is enabled, the image will be resampled to isotropic voxels.
Downsample if (resampled) image size would exceed¶
-
name:
enableVoxelCountLimit
, type:
Bool
, default:
FALSE
¶ Enable or disable the maximum voxel count threshold used to determine whether resampling is required or not.
Max Cubic Voxel Count¶
-
name:
maxCubicVoxelCount
, type:
Integer
, default:
100
, minimum:
1
¶ The maximum voxel count in cubic voxels, i.e. pow(totalVoxelCount, 1.0/3.0), that is allowed in the output image. If this limit is exceeded and enableVoxelCountLimit is enabled, the image will be resampled to a total of maxCubicVoxelCount isotrope voxels.
Skip Resampling If Resampled Image Size Differs By No More Than¶
-
name:
skipResamplingIfResampledImageSizeDiffersByNoMoreThan
, type:
Integer
, default:
5
, minimum:
0
, deprecated name:
resamplingExtensionTolerance
¶ An optimization parameter to prevent resampling along axes where resampling would only change the image extent by no more this amount of voxels.
Resampling Filter¶
-
name:
resamplingFilter
, type:
Enum
, default:
Lanczos_3
¶ Configure the resampling filter to be used. See
Resample3D
documentation for details.
Values:
Title | Name |
---|---|
Nearest Neighbor | Nearest_Neighbor |
Triangle/Linear | Triangle/Linear |
Hermite | Hermite |
Blackman | Blackman |
Hamming | Hamming |
Hanning | Hanning |
Gaussian | Gaussian |
Bell/Quadratic | Bell/Quadratic |
Cubic B-Spline | Cubic_B-Spline |
Catrom | Catrom |
Mitchell et al | Mitchell_et_al |
Trunc Sinc 4 | Trunc_Sinc_4 |
Lanczos 2 | Lanczos_2 |
Lanczos 3 | Lanczos_3 |
Lanczos 4 | Lanczos_4 |
Box NNB | Box_NNB |