Class AlgorithmCostFunctions

java.lang.Object
gov.nih.mipav.model.algorithms.AlgorithmCostFunctions
All Implemented Interfaces:
AlgorithmOptimizeFunctionBase

public class AlgorithmCostFunctions extends Object implements AlgorithmOptimizeFunctionBase
CostFunction - class for specifying optimization function.
  • Field Details

    • CORRELATION_RATIO_SMOOTHED_WGT

      public static final int CORRELATION_RATIO_SMOOTHED_WGT
      DOCUMENT ME!
      See Also:
    • CORRELATION_RATIO_SMOOTHED

      public static final int CORRELATION_RATIO_SMOOTHED
      DOCUMENT ME!
      See Also:
    • CORRELATION_RATIO

      public static final int CORRELATION_RATIO
      DOCUMENT ME!
      See Also:
    • LEAST_SQUARES_SMOOTHED_WGT

      public static final int LEAST_SQUARES_SMOOTHED_WGT
      DOCUMENT ME!
      See Also:
    • LEAST_SQUARES_SMOOTHED

      public static final int LEAST_SQUARES_SMOOTHED
      DOCUMENT ME!
      See Also:
    • LEAST_SQUARES

      public static final int LEAST_SQUARES
      DOCUMENT ME!
      See Also:
    • MUTUAL_INFORMATION_SMOOTHED_WGT

      public static final int MUTUAL_INFORMATION_SMOOTHED_WGT
      DOCUMENT ME!
      See Also:
    • MUTUAL_INFORMATION_SMOOTHED

      public static final int MUTUAL_INFORMATION_SMOOTHED
      DOCUMENT ME!
      See Also:
    • MUTUAL_INFORMATION

      public static final int MUTUAL_INFORMATION
      DOCUMENT ME!
      See Also:
    • NORMALIZED_MUTUAL_INFORMATION_SMOOTHED_WGT

      public static final int NORMALIZED_MUTUAL_INFORMATION_SMOOTHED_WGT
      DOCUMENT ME!
      See Also:
    • NORMALIZED_MUTUAL_INFORMATION_SMOOTHED

      public static final int NORMALIZED_MUTUAL_INFORMATION_SMOOTHED
      DOCUMENT ME!
      See Also:
    • NORMALIZED_MUTUAL_INFORMATION

      public static final int NORMALIZED_MUTUAL_INFORMATION
      DOCUMENT ME!
      See Also:
    • NORMALIZED_XCORRELATION_SMOOTHED_WGT

      public static final int NORMALIZED_XCORRELATION_SMOOTHED_WGT
      DOCUMENT ME!
      See Also:
    • NORMALIZED_XCORRELATION_SINC

      public static final int NORMALIZED_XCORRELATION_SINC
      DOCUMENT ME!
      See Also:
    • NORMALIZED_XCORRELATION_SMOOTHED

      public static final int NORMALIZED_XCORRELATION_SMOOTHED
      DOCUMENT ME!
      See Also:
    • NORMALIZED_XCORRELATION

      public static final int NORMALIZED_XCORRELATION
      DOCUMENT ME!
      See Also:
    • LEAST_SQUARES_SMOOTHED_WGT_COLOR

      public static final int LEAST_SQUARES_SMOOTHED_WGT_COLOR
      DOCUMENT ME!
      See Also:
    • LEAST_SQUARES_SMOOTHED_COLOR

      public static final int LEAST_SQUARES_SMOOTHED_COLOR
      DOCUMENT ME!
      See Also:
    • LEAST_SQUARES_COLOR

      public static final int LEAST_SQUARES_COLOR
      DOCUMENT ME!
      See Also:
    • NORMALIZED_MUTUAL_INFORMATION_GPU

      public static final int NORMALIZED_MUTUAL_INFORMATION_GPU
      See Also:
    • NORMALIZED_MUTUAL_INFORMATION_GPU_LM

      public static final int NORMALIZED_MUTUAL_INFORMATION_GPU_LM
      See Also:
    • costCalled

      private int costCalled
      DOCUMENT ME!
    • costFunctID

      private int costFunctID
      DOCUMENT ME!
    • inputImage

      private ModelSimpleImage inputImage
      DOCUMENT ME!
    • inputWgtImage

      private ModelSimpleImage inputWgtImage
      DOCUMENT ME!
    • nBins

      private final int nBins
      DOCUMENT ME!
    • nVoxels

      private int nVoxels
      DOCUMENT ME!
    • pLogP

      private double[] pLogP
      DOCUMENT ME!
    • refImage

      private ModelSimpleImage refImage
      DOCUMENT ME!
    • refSliceSize

      private final int refSliceSize
      DOCUMENT ME!
    • refWgtImage

      private ModelSimpleImage refWgtImage
      DOCUMENT ME!
    • sincKernel

      private final double[] sincKernel
      DOCUMENT ME!
    • sincWidth

      private final int sincWidth
      DOCUMENT ME!
      See Also:
    • sincx

      private final double[] sincx
      DOCUMENT ME!
    • sincy

      private final double[] sincy
      DOCUMENT ME!
    • sincz

      private final double[] sincz
      DOCUMENT ME!
    • sliceSize

      private final int sliceSize
      DOCUMENT ME!
    • smoothSize

      private final float smoothSize
      DOCUMENT ME!
    • xDim

      private final int xDim
      DOCUMENT ME!
    • xEnd

      private int xEnd
      DOCUMENT ME!
    • xEnd2

      private final double xEnd2
      DOCUMENT ME!
    • xStart

      private int xStart
    • yDim

      private final int yDim
      DOCUMENT ME!
    • yEnd

      private int yEnd
      DOCUMENT ME!
    • yEnd2

      private final double yEnd2
      DOCUMENT ME!
    • yStart

      private int yStart
    • zDim

      private final int zDim
      DOCUMENT ME!
    • zEnd

      private int zEnd
      DOCUMENT ME!
    • zEnd2

      private final double zEnd2
      DOCUMENT ME!
    • zStart

      private int zStart
    • m_afJointHisto

      private float[] m_afJointHisto
    • m_bPrint

      private final boolean m_bPrint
      See Also:
    • m_kGPUCost

      private ImageRegistrationGPU m_kGPUCost
  • Constructor Details

    • AlgorithmCostFunctions

      public AlgorithmCostFunctions(ModelSimpleImage rImage, ModelSimpleImage iImage, int functionID, int nBins, float smoothSize)
      Creates a new AlgorithmCostFunctions object.
      Parameters:
      rImage - DOCUMENT ME!
      iImage - DOCUMENT ME!
      functionID - DOCUMENT ME!
      nBins - DOCUMENT ME!
      smoothSize - DOCUMENT ME!
  • Method Details

    • getCostFunction

      public int getCostFunction()
      Specified by:
      getCostFunction in interface AlgorithmOptimizeFunctionBase
    • cost

      public double cost(double[] data)
      Not implemented in this class.
      Specified by:
      cost in interface AlgorithmOptimizeFunctionBase
      Parameters:
      data - Array of data.
      Returns:
      Double.MAX_VALUE
    • cost

      public double cost(TransMatrix affMatrix)
      Calculates the cost (dependent on the selected cost function) based on the reference image and the input image.
      Specified by:
      cost in interface AlgorithmOptimizeFunctionBase
      Parameters:
      affMatrix - Transformation matrix to test cost of.
      Returns:
      Cost at a supplied transformation.
    • cost

      public double cost(TransMatrixd affMatrix)
      Calculates the cost (dependent on the selected cost function) based on the reference image and the input image.
      Specified by:
      cost in interface AlgorithmOptimizeFunctionBase
      Parameters:
      affMatrix - Transformation matrix to test cost of.
      Returns:
      Cost at a supplied transformation.
    • disposeLocal

      public void disposeLocal()
      Sets class global array variables to null and calls the garbage collector.
    • finalize

      public void finalize() throws Throwable
      Calls disposeLocal of this class to ensure this class nulls the references to global class variables so that memory will be recovered.
      Overrides:
      finalize in class Object
      Throws:
      Throwable - DOCUMENT ME!
    • setGPUCost

      public void setGPUCost(ImageRegistrationGPU kGPUCost)
    • getCostCalled

      public int getCostCalled()
      Accessor that returns how many times the cost function has been called.
      Returns:
      The number of times the cost function has been called.
    • isGPULineMin

      public boolean isGPULineMin()
    • lineMin

      public float[] lineMin(WildMagic.LibFoundation.Mathematics.Matrix4f kToOrigin, WildMagic.LibFoundation.Mathematics.Matrix4f kFromOrigin, float rigid, float dim, double[] startPoint, double[] pt, int ptLength, double[] unitDirections, double unit_tolerance, double fMinDist, double bracketA, double functionA, double bracketB, double functionB, double bracketC, double functionC)
    • setInputWgtImage

      public void setInputWgtImage(ModelSimpleImage inputWgtImg)
      Sets the input weight image. If the weight values are outside the range [0:1] then the weigthts will be remapped to be between 0:1.
      Parameters:
      inputWgtImg - the input weight image
    • setRefWgtImage

      public void setRefWgtImage(ModelSimpleImage refWgtImg)
      Sets the reference weight image. If the weight values are outside the range [0:1] then the weigthts will be remapped to be between 0:1.
      Parameters:
      refWgtImg - the reference weight image
    • calcEntropy

      private void calcEntropy(TransMatrix tMatrix, double[] jointEntropy, double[] margEntropyR, double[] margEntropyI)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      jointEntropy - DOCUMENT ME!
      margEntropyR - DOCUMENT ME!
      margEntropyI - DOCUMENT ME!
    • calcEntropy

      private void calcEntropy(TransMatrixd tMatrix, double[] jointEntropy, double[] margEntropyR, double[] margEntropyI)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      jointEntropy - DOCUMENT ME!
      margEntropyR - DOCUMENT ME!
      margEntropyI - DOCUMENT ME!
    • calcEntropySmoothed

      private void calcEntropySmoothed(TransMatrix tMatrix, double[] jointEntropy, double[] margEntropyR, double[] margEntropyI)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      jointEntropy - DOCUMENT ME!
      margEntropyR - DOCUMENT ME!
      margEntropyI - DOCUMENT ME!
    • calcEntropySmoothed

      private void calcEntropySmoothed(TransMatrixd tMatrix, double[] jointEntropy, double[] margEntropyR, double[] margEntropyI)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      jointEntropy - DOCUMENT ME!
      margEntropyR - DOCUMENT ME!
      margEntropyI - DOCUMENT ME!
    • calcEntropySmoothedWgt

      private void calcEntropySmoothedWgt(TransMatrix tMatrix, double[] jointEntropy, double[] margEntropyR, double[] margEntropyI)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      jointEntropy - DOCUMENT ME!
      margEntropyR - DOCUMENT ME!
      margEntropyI - DOCUMENT ME!
    • calcEntropySmoothedWgt

      private void calcEntropySmoothedWgt(TransMatrixd tMatrix, double[] jointEntropy, double[] margEntropyR, double[] margEntropyI)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      jointEntropy - DOCUMENT ME!
      margEntropyR - DOCUMENT ME!
      margEntropyI - DOCUMENT ME!
    • correlationRatio

      private double correlationRatio(TransMatrix tMatrix)
      Correlation ratio cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • correlationRatio

      private double correlationRatio(TransMatrixd tMatrix)
      Correlation ratio cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • correlationRatioSmoothed

      private double correlationRatioSmoothed(TransMatrix tMatrix)
      Correlation ratio cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • correlationRatioSmoothed

      private double correlationRatioSmoothed(TransMatrixd tMatrix)
      Correlation ratio cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • correlationRatioSmoothedWgt

      private double correlationRatioSmoothedWgt(TransMatrix tMatrix)
      Correlation ratio cost function using weighting functions to mask out areas that should not be included in the cost function calculations.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • correlationRatioSmoothedWgt

      private double correlationRatioSmoothedWgt(TransMatrixd tMatrix)
      Correlation ratio cost function using weighting functions to mask out areas that should not be included in the cost function calculations.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • findRangeX

      private void findRangeX(Point minMaxPt, double newPtX, double newPtY, double newPtZ, double aT00, double aT10, double aT20, double iT00, double iT10, double iT20)
      DOCUMENT ME!
      Parameters:
      minMaxPt - DOCUMENT ME!
    • getSinc

      private double getSinc(float[] data, double x, double y, double z)
      DOCUMENT ME!
      Parameters:
      data - DOCUMENT ME!
      x - DOCUMENT ME!
      y - DOCUMENT ME!
      z - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • hanning

      private static final double hanning(double x, int w)
      DOCUMENT ME!
      Parameters:
      x - DOCUMENT ME!
      w - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • kernelVal

      private double kernelVal(double x, int w)
      DOCUMENT ME!
      Parameters:
      x - DOCUMENT ME!
      w - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • leastSquares

      private double leastSquares(TransMatrix tMatrix)
      Least squares cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • leastSquares

      private double leastSquares(TransMatrixd tMatrix)
      Least squares cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • leastSquaresColor

      private double leastSquaresColor(TransMatrix tMatrix)
      Least squares cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • leastSquaresColor

      private double leastSquaresColor(TransMatrixd tMatrix)
      Least squares cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • leastSquaresSmoothed

      private double leastSquaresSmoothed(TransMatrix tMatrix)
      Least squares cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • leastSquaresSmoothed

      private double leastSquaresSmoothed(TransMatrixd tMatrix)
      Least squares cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • leastSquaresSmoothedColor

      private double leastSquaresSmoothedColor(TransMatrix tMatrix)
      Least squares cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • leastSquaresSmoothedColor

      private double leastSquaresSmoothedColor(TransMatrixd tMatrix)
      Least squares cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • leastSquaresSmoothedWgt

      private double leastSquaresSmoothedWgt(TransMatrix tMatrix)
      Least squares cost function with weighting.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • leastSquaresSmoothedWgt

      private double leastSquaresSmoothedWgt(TransMatrixd tMatrix)
      Least squares cost function with weighting.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • leastSquaresSmoothedWgtColor

      private double leastSquaresSmoothedWgtColor(TransMatrix tMatrix)
      Least squares cost function with weighting.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • leastSquaresSmoothedWgtColor

      private double leastSquaresSmoothedWgtColor(TransMatrixd tMatrix)
      Least squares cost function with weighting.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • mutualInformation

      private double mutualInformation(TransMatrix tMatrix)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • mutualInformation

      private double mutualInformation(TransMatrixd tMatrix)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • mutualInformationSmoothed

      private double mutualInformationSmoothed(TransMatrix tMatrix)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • mutualInformationSmoothed

      private double mutualInformationSmoothed(TransMatrixd tMatrix)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedMutualInformation

      private double normalizedMutualInformation(TransMatrix tMatrix)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedMutualInformation

      private double normalizedMutualInformation(TransMatrixd tMatrix)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedMutualInformationSmoothed

      private double normalizedMutualInformationSmoothed(TransMatrix tMatrix)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedMutualInformationSmoothed

      private double normalizedMutualInformationSmoothed(TransMatrixd tMatrix)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedMutualInformationSmoothedWgt

      private double normalizedMutualInformationSmoothedWgt(TransMatrix tMatrix)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedMutualInformationSmoothedWgt

      private double normalizedMutualInformationSmoothedWgt(TransMatrixd tMatrix)
      DOCUMENT ME!
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedXCorrelation

      private double normalizedXCorrelation(TransMatrix tMatrix)
      Normalized cross-correlation cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedXCorrelation

      private double normalizedXCorrelation(TransMatrixd tMatrix)
      Normalized cross-correlation cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedXCorrelationSinc

      private double normalizedXCorrelationSinc(TransMatrix tMatrix)
      Normalized cross-correlation cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedXCorrelationSinc

      private double normalizedXCorrelationSinc(TransMatrixd tMatrix)
      Normalized cross-correlation cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedXCorrelationSmoothed

      private double normalizedXCorrelationSmoothed(TransMatrix tMatrix)
      Normalized cross-correlation cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedXCorrelationSmoothed

      private double normalizedXCorrelationSmoothed(TransMatrixd tMatrix)
      Normalized cross-correlation cost function.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedXCorrelationSmoothedWgt

      private double normalizedXCorrelationSmoothedWgt(TransMatrix tMatrix)
      Normalized cross-correlation cost function with weighting.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • normalizedXCorrelationSmoothedWgt

      private double normalizedXCorrelationSmoothedWgt(TransMatrixd tMatrix)
      Normalized cross-correlation cost function with weighting.
      Parameters:
      tMatrix - DOCUMENT ME!
      Returns:
      DOCUMENT ME!
    • setPLogP

      private void setPLogP(int nBins)
      Precalculates information and allocates buffers used in the calculation of mutual information statistics.
      Parameters:
      nBins - the number of bins
    • setupKernel

      private void setupKernel()
      DOCUMENT ME!
    • sinc

      private static final double sinc(double x)
      DOCUMENT ME!
      Parameters:
      x - DOCUMENT ME!
      Returns:
      DOCUMENT ME!