Class AlgorithmRegChamfer

  • All Implemented Interfaces:
    de.jtem.numericalMethods.calculus.function.RealFunctionOfSeveralVariables, java.awt.event.ActionListener, java.awt.event.WindowListener, java.lang.Runnable, java.util.EventListener

    public class AlgorithmRegChamfer
    extends AlgorithmBase
    implements de.jtem.numericalMethods.calculus.function.RealFunctionOfSeveralVariables
    AlgorithmRegChamfer First slice is template (base image) to which match image is registered. Minimize cost, measures distance between surfaces in base image and match image.
    Version:
    1.0 April, 2000
    Author:
    Delia McGarry
    • Field Detail

      • baseBuffer

        private float[] baseBuffer
        DOCUMENT ME!
      • DIM

        private int DIM
        DOCUMENT ME!
      • entireImage

        private boolean entireImage
        DOCUMENT ME!
      • image25D

        private boolean image25D
        DOCUMENT ME!
      • volume25D

        private ModelImage volume25D
        DOCUMENT ME!
      • edgeImg

        private ModelImage edgeImg
        DOCUMENT ME!
      • matchPts

        private WildMagic.LibFoundation.Mathematics.Vector3f[] matchPts
        DOCUMENT ME!
      • N

        private int N
        DOCUMENT ME!
      • simplexDim

        private int simplexDim
        DOCUMENT ME!
      • TmatchPts

        private WildMagic.LibFoundation.Mathematics.Vector3f[] TmatchPts
        DOCUMENT ME!
      • tMatrixMatchtoBase

        private TransMatrix[] tMatrixMatchtoBase
        DOCUMENT ME!
      • volLength

        private int volLength
        DOCUMENT ME!
      • sliceSize

        private int sliceSize
        DOCUMENT ME!
      • xdimB

        private int xdimB
        DOCUMENT ME!
      • ydimB

        private int ydimB
        DOCUMENT ME!
      • zdimB

        private int zdimB
        DOCUMENT ME!
      • xdimM

        private int xdimM
        DOCUMENT ME!
      • ydimM

        private int ydimM
        DOCUMENT ME!
      • zdimM

        private int zdimM
        DOCUMENT ME!
      • xresB

        private float xresB
        DOCUMENT ME!
      • yresB

        private float yresB
        DOCUMENT ME!
      • zresB

        private float zresB
        DOCUMENT ME!
      • xresM

        private float xresM
        DOCUMENT ME!
    • Constructor Detail

      • AlgorithmRegChamfer

        public AlgorithmRegChamfer​(ModelImage base,
                                   ModelImage matchImage,
                                   boolean maskFlag)
        Constructs a new registration algorithm.
        Parameters:
        base - binary, edge-extracted base image
        matchImage - binary edge-extracted image to be transformed
        maskFlag - flag indicating if the whole image should be processed
      • AlgorithmRegChamfer

        public AlgorithmRegChamfer​(ModelImage volume25D,
                                   ModelImage edgeImg,
                                   boolean maskFlag,
                                   boolean image25D)
        Constructs new registration algorithm.
        Parameters:
        volume25D - volume to be registered
        edgeImg - binary, edge-extracted version of volume25D
        maskFlag - flag indicating whether to mask to image or not
        image25D - volume processed as 2.5D, slices registered to adjacent slice
    • Method Detail

      • SQR

        public static double SQR​(double x)
        SQR = x^2.
        Parameters:
        x - Number to square.
        Returns:
        DOCUMENT ME!
      • finalize

        public void finalize()
        Prepares this class for destruction.
        Overrides:
        finalize in class AlgorithmBase
      • getTransformMatchtoBase

        public TransMatrix getTransformMatchtoBase()
        Accessor that returns the transformation from match to base. For 2D or 3D.
        Returns:
        Transformation.
      • getTransformMatchtoBase

        public TransMatrix getTransformMatchtoBase​(int sliceNum)
        Accessor that returns the transformation from match to base. For 2.5D.
        Parameters:
        sliceNum - Match slice.
        Returns:
        Transformation.
      • concatenateMatrix

        private void concatenateMatrix​(TransMatrix[] tMatrixMatchtoBase,
                                       int matchSlice)
        Concatenates the matrices.
        Parameters:
        tMatrixMatchtoBase - Array of matrices to concatenate
        matchSlice - Last slice to concatenate
      • distanceTransform

        private void distanceTransform()
        Chamfer matching: Distance transformation coverts binary surface image into grey-level image where each pixel's intensity = distance to nearest surface pixel.
      • distanceTransform25D

        private void distanceTransform25D()
        Chamfer matching: Distance transformation coverts binary surface image into grey-level image where each pixel's intensity = distance to nearest surface pixel.
      • generateCoordList

        private void generateCoordList()
        Generates the coordinate list.
      • generateCoordList25D

        private void generateCoordList25D​(int matchSlice)
        Generates the coordinate list 2.5 D.
        Parameters:
        matchSlice - Slice to match.
      • getNumberMatchPts

        private int getNumberMatchPts()
        Gets the number of match points.
        Returns:
        The number of match points.
      • getNumberMatchPts25D

        private int getNumberMatchPts25D​(int matchSlice)
        Get number of match points 2.5 D.
        Parameters:
        matchSlice - Slice to match.
        Returns:
        Number of match points.
      • getTransformFromX

        private void getTransformFromX​(double[] x,
                                       TransMatrix xfrm)
        Converts row of p into 3x3 matrix.
        Parameters:
        x - row of p[][]
        xfrm - transformation matrix.
      • initializeNelderMead

        private void initializeNelderMead​(double[][] xi,
                                          double[] initialPoint)
      • min

        private float min​(float[] x)
        Finds minimum sum under mask.
        Parameters:
        x - Array to find minimum of.
        Returns:
        DOCUMENT ME!
      • search

        private void search​(TransMatrix xfrm)
        Search.
        Parameters:
        xfrm - Transformation matrix.
      • transform25DMatchSlice

        private void transform25DMatchSlice​(int matchSlice,
                                            TransMatrix xfrm,
                                            float[] imgBuf,
                                            float[] tImgBuf)
        Transforms 2.5 D match slice.
        Parameters:
        matchSlice - Slice to match
        xfrm - Transformation matrix
        imgBuf - Image buffer
        tImgBuf - Transformed image buffer
      • eval

        public double eval​(double[] x)
        Specified by:
        eval in interface de.jtem.numericalMethods.calculus.function.RealFunctionOfSeveralVariables
      • getNumberOfVariables

        public int getNumberOfVariables()
        Specified by:
        getNumberOfVariables in interface de.jtem.numericalMethods.calculus.function.RealFunctionOfSeveralVariables