Class AlgorithmRegChamfer

java.lang.Object
java.lang.Thread
gov.nih.mipav.model.algorithms.AlgorithmBase
gov.nih.mipav.model.algorithms.registration.AlgorithmRegChamfer
All Implemented Interfaces:
de.jtem.numericalMethods.calculus.function.RealFunctionOfSeveralVariables, ActionListener, WindowListener, Runnable, 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 Details

    • baseBuffer

      private float[] baseBuffer
      DOCUMENT ME!
    • DIM

      private int DIM
      DOCUMENT ME!
    • entireImage

      private boolean entireImage
      DOCUMENT ME!
    • image25D

      private boolean image25D
      DOCUMENT ME!
    • match

      private ModelImage match
      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!
    • tmpXfrm

      private TransMatrix tmpXfrm
      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!
    • func

  • Constructor Details

    • 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 Details

    • 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.
    • runAlgorithm

      public void runAlgorithm()
      Starts the algorithm.
      Specified by:
      runAlgorithm in class AlgorithmBase
    • 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