Class AlgorithmHepticLagrangian

java.lang.Object
java.lang.Thread
gov.nih.mipav.model.algorithms.AlgorithmBase
gov.nih.mipav.model.algorithms.AlgorithmHepticLagrangian
All Implemented Interfaces:
ActionListener, WindowListener, Runnable, EventListener

public class AlgorithmHepticLagrangian extends AlgorithmBase
This is a polynomial p of degree 7 which interpolates a given function f at the points x(-3), x(-2), x(-1), x(0), x(1), x(2), x(3), and x(4) and is given by p(x) = sum from i = -3 to i = 4 of li(x)*f(xi), where li, i = -3,-2,-1,0,1,2,3,4 which are called the fundamental polynomials, are given by li(x) = product from k = -3 to k = 4 for k != i of (x - xk)/(xi - xk). li(-3) = (x - -2)/(-3 - -2) * (x - -1)/(-3 - -1) * (x - 0)/(-3 - 0) * (x-1)/(-3 - 1) * (x - 2)/(-3 - 2) * (x - 3)/(-3 - 3) * (x - 4)/(-3 - 4) = (x * (x*x - 1) * (x*x - 4) * (x - 3) * (4 - x))/5040 li(-2) = (x - -3)/(-2 - -3) * (x - -1)/(-2 - -1) * (x - 0)/(-2 - 0) * (x-1)/(-2 - 1) * (x-2)/(-2 - 2) * (x-3)/(-2 - 3) * (x - 4)/(-2 - 4) = (x * (x*x - 1) * (x - 2) * (x*x - 9) * (x - 4))/720 li(-1) = (x - -3)/(-1 - -3) * (x - -2)/(-1 - -2) * (x - 0)/(-1 - 0)* (x-1)/(-1 - 1) * (x - 2)/(-1 - 2) * (x - 3)/(-1 - 3) * (x - 4)/(-1 - 4) = (x * (x - 1) * (x*x- 4) * (x*x - 9) * (4 - x)))/240 li(0) = (x - -3)/(0 - -3) * (x - -2)/(0 - -2) * (x - -1)/(0 - -1) * (x - 1)/(0 - 1) * (x - 2)/(0 - 2) * (x - 3)/(0 - 3) * (x - 4)/(0 - 4) = ((x*x - 1) * (x*x - 4) * (x*x - 9) * (x - 4))/144 li(1) = (x - -3)/(1 - -3) * (x - -2)/(1 - -2) * (x - -1)/(1 - -1) * (x - 0)/(1 - 0) * (x - 2)/(1 - 2) * (x - 3)/(1 - 3) * (x - 4)/(1 - 4) = (x * (x+1) * (x*x - 4) * (x*x - 9) * (4 - x))/144 li(2) = (x - -3)/(2 - -3) * (x - -2)/(2 - -2) * (x - -1)/(2 - -1) * (x - 0)/(2 - 0) * (x - 1)/(2 - 1) * (x - 3)/(2 - 3) * (x - 4)/(2 - 4) = (x * (x*x - 1) * (x+2) * (x*x - 9) * (x - 4))/240 li(3) = (x - -3)/(3 - -3) *(x - -2)/(3 - -2) * (x - -1)/(3 - -1) * (x - 0)/(3 - 0) * (x - 1)/(3 - 1) * (x - 2)/(3 - 2) * (x - 4)/(3 - 4) = (x * (x*x - 1) * (x*x - 4) * (x + 3) * (4 - x))/720 li(4) = (x - -3)/(4 - -3) * (x - -2)/(4 - -2) * (x - -1)/(4 - -1) * (x - 0)/(4 - 0) * (x - 1)/(4 - 1) * (x - 2)/(4 - 2) * (x - 3)/(4 - 3) = (x * (x*x - 1) * (x*x - 4) * (x*x - 9))/5040
  • Field Details

    • alphaMax

      private double alphaMax
      DOCUMENT ME!
    • alphaMin

      private double alphaMin
      DOCUMENT ME!
    • blueMax

      private double blueMax
      DOCUMENT ME!
    • blueMin

      private double blueMin
      DOCUMENT ME!
    • clip

      private boolean clip
      DOCUMENT ME!
    • greenMax

      private double greenMax
      DOCUMENT ME!
    • greenMin

      private double greenMin
      DOCUMENT ME!
    • inputMax

      private double inputMax
      DOCUMENT ME!
    • inputMin

      private double inputMin
      DOCUMENT ME!
    • redMax

      private double redMax
      DOCUMENT ME!
    • redMin

      private double redMin
      DOCUMENT ME!
    • sliceSize

      private int sliceSize
      DOCUMENT ME!
    • volume

      private double[] volume
      DOCUMENT ME!
    • wt

      private double[][] wt
      DOCUMENT ME!
    • xD

      private int xD
      DOCUMENT ME!
    • yD

      private int yD
      DOCUMENT ME!
    • zD

      private int zD
      DOCUMENT ME!
    • xdim

      private int xdim
      DOCUMENT ME!
    • ydim

      private int ydim
      DOCUMENT ME!
    • zdim

      private int zdim
      DOCUMENT ME!
  • Constructor Details

    • AlgorithmHepticLagrangian

      public AlgorithmHepticLagrangian()
      AlgorithmHepticLagrangian - default constructor.
  • Method Details

    • finalize

      public void finalize()
      finalize -
      Overrides:
      finalize in class AlgorithmBase
    • hepticLagrangian2D

      public double hepticLagrangian2D(double x, double y)
      2D heptic Lagrangian function.
      Parameters:
      x - double point index
      y - double point index
      Returns:
      the heptic Lagrangian interpolated data point
    • hepticLagrangian2DC

      public double[] hepticLagrangian2DC(double x, double y)
      2D heptic Lagrangian function for color.
      Parameters:
      x - double point index
      y - double point index
      Returns:
      the heptic Lagrangian interpolated data point
    • hepticLagrangian3D

      public final double hepticLagrangian3D(double x, double y, double z)
      3D heptic Lagrangian function.
      Parameters:
      x - double point index
      y - double point index
      z - double point index
      Returns:
      the hepticLagrangian3D interpolated data point
    • hepticLagrangian3DC

      public double[] hepticLagrangian3DC(double x, double y, double z)
      3D heptic Lagrangian function for color (3 channel images).
      Parameters:
      x - double point index
      y - double point index
      z - double point index
      Returns:
      the hepticLagrangian3D interpolated data point
    • runAlgorithm

      public void runAlgorithm()
      run - default method that is not really appropiate for this class but must be defined because this class extends AlgorithmBase.
      Specified by:
      runAlgorithm in class AlgorithmBase
    • setup2DHepticLagrangian

      public void setup2DHepticLagrangian(double[] vol, int[] extents, boolean clip)
      Setup 2D hepticLagrangian.
      Parameters:
      vol - volume comprising control points for the heptic Lagrangian
      extents - vol extents (xdim, ydim)
      clip - if true clip output to range of input image
    • setup2DHepticLagrangianC

      public void setup2DHepticLagrangianC(double[] vol, int[] extents, float argbMax, boolean clip)
      Setup 2D hepticLagrangian for color.
      Parameters:
      vol - volume comprising control points for the heptic Lagrangian
      extents - vol extents (xdim, ydim)
      argbMax - maximum possible color value
      clip - if true clip output to range of input image
    • setup3DHepticLagrangian

      public void setup3DHepticLagrangian(double[] vol, int[] extents, boolean clip)
      Setup 3D heptic Lagrangian.
      Parameters:
      vol - volume comprising control points for the heptic Lagrangian
      extents - vol extents (xdim, ydim, zdim)
      clip - if true clip output to range of input image
    • setup3DHepticLagrangianC

      public void setup3DHepticLagrangianC(double[] vol, int[] extents, float argbMax, boolean clip)
      Setup 3D heptic Lagrangian for color.
      Parameters:
      vol - volume comprising control points for the heptic Lagrangian
      extents - vol extents (xdim, ydim, zdim)
      argbMax - maximum possible color value
      clip - if true clip output to range of input image