Class AlgorithmHepticLagrangian

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.event.WindowListener, java.lang.Runnable, java.util.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 Detail

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

      • AlgorithmHepticLagrangian

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

      • 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