Class SoImagePreAlignmentTransform3d

  • All Implemented Interfaces:
    SafeDisposable

    public class SoImagePreAlignmentTransform3d
    extends SoImageVizEngine
    SoImagePreAlignmentTransform3d image filter. SoImagePreAlignmentTransform3d estimates a transformation (translation and rotation) that aligns a moving image with a fixed image based on their intensity values. This transformation is particularly useful as an initial transformation value for the IntensityParametricRegistration engine.

    SoImagePreAlignmentTransform3d first computes the centers of gravity and (optionally) the principal axes of both images (model and reference) using the image intensity values as a mass density. In the second step, the translation and the rotation that align the centers of gravity and the principal axes of both images are estimated. Note that if the computation of principal axes is omitted, only a translation is estimated.

    File format/default:

    ImagePreAlignmentTransform3d {

      inMovingImage NULL
      inFixedImage NULL
      alignmentMode CENTERS
    }

      Notice: This engine requires to preliminarily load the whole input data sets into memory to be computed. As a consequence, the maximum memory parameter must be either set to 0 or greater than the data set memory size:

      If this condition is not respected an exception will be raised when launching the execution of this engine: "engine cannot be computed because inputs are not in memory images."

      If the input data sets cannot fit in memory, this engine will fail during its computation.

    See Also:
    SoImageRegistrationTransform, SoRegistrationResult
    • Constructor Detail

      • SoImagePreAlignmentTransform3d

        public SoImagePreAlignmentTransform3d()
        Constructor.
    • Method Detail

      • getOutputTransformation

        public SbMatrix getOutputTransformation()
        Returns the transform matrix that aligns the model image to the reference image.