Package gov.nih.mipav.model.algorithms
Class AlgorithmHepticLagrangian
- java.lang.Object
-
- java.lang.Thread
-
- gov.nih.mipav.model.algorithms.AlgorithmBase
-
- gov.nih.mipav.model.algorithms.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 Summary
Fields Modifier and Type Field Description private doublealphaMaxDOCUMENT ME!private doublealphaMinDOCUMENT ME!private doubleblueMaxDOCUMENT ME!private doubleblueMinDOCUMENT ME!private booleanclipDOCUMENT ME!private doublegreenMaxDOCUMENT ME!private doublegreenMinDOCUMENT ME!private doubleinputMaxDOCUMENT ME!private doubleinputMinDOCUMENT ME!private doubleredMaxDOCUMENT ME!private doubleredMinDOCUMENT ME!private intsliceSizeDOCUMENT ME!private double[]volumeDOCUMENT ME!private double[][]wtDOCUMENT ME!private intxDDOCUMENT ME!private intxdimDOCUMENT ME!private intyDDOCUMENT ME!private intydimDOCUMENT ME!private intzDDOCUMENT ME!private intzdimDOCUMENT ME!-
Fields inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
destFlag, destImage, image25D, mask, maxProgressValue, minProgressValue, multiThreadingEnabled, nthreads, progress, progressModulus, progressStep, runningInSeparateThread, separable, srcImage, threadStopped
-
-
Constructor Summary
Constructors Constructor Description AlgorithmHepticLagrangian()AlgorithmHepticLagrangian - default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidfinalize()finalize -doublehepticLagrangian2D(double x, double y)2D heptic Lagrangian function.double[]hepticLagrangian2DC(double x, double y)2D heptic Lagrangian function for color.doublehepticLagrangian3D(double x, double y, double z)3D heptic Lagrangian function.double[]hepticLagrangian3DC(double x, double y, double z)3D heptic Lagrangian function for color (3 channel images).voidrunAlgorithm()run - default method that is not really appropiate for this class but must be defined because this class extends AlgorithmBase.voidsetup2DHepticLagrangian(double[] vol, int[] extents, boolean clip)Setup 2D hepticLagrangian.voidsetup2DHepticLagrangianC(double[] vol, int[] extents, float argbMax, boolean clip)Setup 2D hepticLagrangian for color.voidsetup3DHepticLagrangian(double[] vol, int[] extents, boolean clip)Setup 3D heptic Lagrangian.voidsetup3DHepticLagrangianC(double[] vol, int[] extents, float argbMax, boolean clip)Setup 3D heptic Lagrangian for color.-
Methods inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
actionPerformed, addListener, addProgressChangeListener, calculateImageSize, calculatePrincipleAxis, computeElapsedTime, computeElapsedTime, convertIntoFloat, delinkProgressToAlgorithm, delinkProgressToAlgorithmMulti, displayError, errorCleanUp, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, fireProgressStateChanged, generateProgressValues, getDestImage, getElapsedTime, getMask, getMaxProgressValue, getMinProgressValue, getNumberOfThreads, getProgress, getProgressChangeListener, getProgressChangeListeners, getProgressModulus, getProgressStep, getProgressValues, getSrcImage, isCompleted, isImage25D, isMultiThreadingEnabled, isRunningInSeparateThread, isThreadStopped, linkProgressToAlgorithm, linkProgressToAlgorithm, makeProgress, notifyListeners, removeListener, removeProgressChangeListener, run, setCompleted, setImage25D, setMask, setMaxProgressValue, setMinProgressValue, setMultiThreadingEnabled, setNumberOfThreads, setProgress, setProgressModulus, setProgressStep, setProgressValues, setProgressValues, setRunningInSeparateThread, setSrcImage, setStartTime, setThreadStopped, startMethod, windowActivated, windowClosed, windowClosing, windowDeactivated, windowDeiconified, windowIconified, windowOpened
-
Methods inherited from class java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
-
-
-
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!
-
-
Method Detail
-
finalize
public void finalize()
finalize -- Overrides:
finalizein classAlgorithmBase
-
hepticLagrangian2D
public double hepticLagrangian2D(double x, double y)2D heptic Lagrangian function.- Parameters:
x- double point indexy- 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 indexy- 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 indexy- double point indexz- 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 indexy- double point indexz- 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:
runAlgorithmin classAlgorithmBase
-
setup2DHepticLagrangian
public void setup2DHepticLagrangian(double[] vol, int[] extents, boolean clip)Setup 2D hepticLagrangian.- Parameters:
vol- volume comprising control points for the heptic Lagrangianextents- 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 Lagrangianextents- vol extents (xdim, ydim)argbMax- maximum possible color valueclip- 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 Lagrangianextents- 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 Lagrangianextents- vol extents (xdim, ydim, zdim)argbMax- maximum possible color valueclip- if true clip output to range of input image
-
-