Class AlgorithmCostFunctions

    • Field Detail

      • CORRELATION_RATIO_SMOOTHED_WGT

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

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

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

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

        public static final int LEAST_SQUARES_SMOOTHED
        DOCUMENT ME!
        See Also:
        Constant Field Values
      • MUTUAL_INFORMATION_SMOOTHED_WGT

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

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

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

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

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

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

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

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

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

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

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

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

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

        public static final int NORMALIZED_MUTUAL_INFORMATION_GPU
        See Also:
        Constant Field Values
      • NORMALIZED_MUTUAL_INFORMATION_GPU_LM

        public static final int NORMALIZED_MUTUAL_INFORMATION_GPU_LM
        See Also:
        Constant Field Values
      • costCalled

        private int costCalled
        DOCUMENT ME!
      • costFunctID

        private int costFunctID
        DOCUMENT ME!
      • nBins

        private final int nBins
        DOCUMENT ME!
      • nVoxels

        private int nVoxels
        DOCUMENT ME!
      • pLogP

        private double[] pLogP
        DOCUMENT ME!
      • refSliceSize

        private final int refSliceSize
        DOCUMENT ME!
      • sincKernel

        private final double[] sincKernel
        DOCUMENT ME!
      • 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
    • Constructor Detail

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

      • 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 java.lang.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 java.lang.Object
        Throws:
        java.lang.Throwable - DOCUMENT ME!
      • 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​(java.awt.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!