Package gov.nih.mipav.model.algorithms
Class AlgorithmVesselEnhancement
- java.lang.Object
-
- java.lang.Thread
-
- gov.nih.mipav.model.algorithms.AlgorithmBase
-
- gov.nih.mipav.model.algorithms.AlgorithmVesselEnhancement
-
- All Implemented Interfaces:
java.awt.event.ActionListener
,java.awt.event.WindowListener
,java.lang.Runnable
,java.util.EventListener
public class AlgorithmVesselEnhancement extends AlgorithmBase
- Author:
- ilb This is a port of MATLAB code vesselnessv2d.m by Boguslaw Obara. multiscale vessel enhancement filtering with vectors Ported under: Apache License Version 2.0, January 2004 Reference:
-
-
Field Summary
Fields Modifier and Type Field Description private double
alpha
private double
beta
int
BORDER_CONSTANT
int
BORDER_DEFAULT
int
BORDER_REFLECT
int
BORDER_REFLECT_101
int
BORDER_REPLICATE
int
BORDER_WRAP
private double
c
private int
dimlenx
private int
dimleny
private int
dimlenz
private double
epsilon
private double
gamma
private double[][]
sigma
private boolean
wb
-
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 AlgorithmVesselEnhancement(ModelImage destImg, ModelImage srcImg, double[][] sigma, double gamma, double alpha, double beta, double c, boolean wb)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private double[][]
copyMakeBorder2D(double[][] src, int top, int bottom, int left, int right, int borderType, double borderValue)
private void
eigen_sort3d_m(double[][][] l1, double[][][] l2, double[][][] l3)
private void
eigen2d_m(double[][] l1, double[][] l2, double[][] a, double[][] b, double[][] c, double[][] d)
private void
eigen3d_m(double[][][] l1, double[][][] l2, double[][][] l3, double[][][] x1, double[][][] x2, double[][][] x3, double[][][] x4, double[][][] x5, double[][][] x6, double[][][] x7, double[][][] x8, double[][][] x9)
private void
filter2Same(double[][] result, double[][] img, double[][] win)
private void
filter3Same(double[][][] result, double[][][] img, double[][][] win)
private void
gaussian2nd2d(double[][] gxx, double[][] gxy, double[][] gyy, double[] s)
private void
gaussian2nd3d(double[][][] gxx, double[][][] gyy, double[][][] gzz, double[][][] gxy, double[][][] gxz, double[][][] gyz, double[] s)
private void
hessian2d(double[][] hxx, double[][] hxy, double[][] hyy, double[][] im, double[] s)
private void
hessian3D(double[][][] hxx, double[][][] hyy, double[][][] hzz, double[][][] hxy, double[][][] hxz, double[][][] hyz, double[][][] im, double[] s)
private double[][][]
replicateBorder3d(double[][][] src, int front, int back, int top, int bottom, int left, int right)
void
runAlgorithm()
Actually runs the algorithm.void
vesselnessv2d()
void
vesselnessv3d()
-
Methods inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
actionPerformed, addListener, addProgressChangeListener, calculateImageSize, calculatePrincipleAxis, computeElapsedTime, computeElapsedTime, convertIntoFloat, delinkProgressToAlgorithm, delinkProgressToAlgorithmMulti, displayError, errorCleanUp, finalize, 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
-
sigma
private double[][] sigma
-
gamma
private double gamma
-
alpha
private double alpha
-
beta
private double beta
-
c
private double c
-
wb
private boolean wb
-
dimlenx
private int dimlenx
-
dimleny
private int dimleny
-
dimlenz
private int dimlenz
-
epsilon
private final double epsilon
- See Also:
- Constant Field Values
-
BORDER_CONSTANT
public final int BORDER_CONSTANT
- See Also:
- Constant Field Values
-
BORDER_REPLICATE
public final int BORDER_REPLICATE
- See Also:
- Constant Field Values
-
BORDER_REFLECT
public final int BORDER_REFLECT
- See Also:
- Constant Field Values
-
BORDER_WRAP
public final int BORDER_WRAP
- See Also:
- Constant Field Values
-
BORDER_REFLECT_101
public final int BORDER_REFLECT_101
- See Also:
- Constant Field Values
-
BORDER_DEFAULT
public final int BORDER_DEFAULT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AlgorithmVesselEnhancement
public AlgorithmVesselEnhancement(ModelImage destImg, ModelImage srcImg, double[][] sigma, double gamma, double alpha, double beta, double c, boolean wb)
-
-
Method Detail
-
runAlgorithm
public void runAlgorithm()
Description copied from class:AlgorithmBase
Actually runs the algorithm. Implemented by inheriting algorithms.- Specified by:
runAlgorithm
in classAlgorithmBase
-
vesselnessv2d
public void vesselnessv2d()
-
gaussian2nd2d
private void gaussian2nd2d(double[][] gxx, double[][] gxy, double[][] gyy, double[] s)
-
replicateBorder3d
private double[][][] replicateBorder3d(double[][][] src, int front, int back, int top, int bottom, int left, int right)
-
copyMakeBorder2D
private double[][] copyMakeBorder2D(double[][] src, int top, int bottom, int left, int right, int borderType, double borderValue)
-
filter2Same
private void filter2Same(double[][] result, double[][] img, double[][] win)
-
filter3Same
private void filter3Same(double[][][] result, double[][][] img, double[][][] win)
-
hessian2d
private void hessian2d(double[][] hxx, double[][] hxy, double[][] hyy, double[][] im, double[] s)
-
eigen2d_m
private void eigen2d_m(double[][] l1, double[][] l2, double[][] a, double[][] b, double[][] c, double[][] d)
-
vesselnessv3d
public void vesselnessv3d()
-
hessian3D
private void hessian3D(double[][][] hxx, double[][][] hyy, double[][][] hzz, double[][][] hxy, double[][][] hxz, double[][][] hyz, double[][][] im, double[] s)
-
gaussian2nd3d
private void gaussian2nd3d(double[][][] gxx, double[][][] gyy, double[][][] gzz, double[][][] gxy, double[][][] gxz, double[][][] gyz, double[] s)
-
eigen3d_m
private void eigen3d_m(double[][][] l1, double[][][] l2, double[][][] l3, double[][][] x1, double[][][] x2, double[][][] x3, double[][][] x4, double[][][] x5, double[][][] x6, double[][][] x7, double[][][] x8, double[][][] x9)
-
eigen_sort3d_m
private void eigen_sort3d_m(double[][][] l1, double[][][] l2, double[][][] l3)
-
-