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 doublealphaprivate doublebetaintBORDER_CONSTANTintBORDER_DEFAULTintBORDER_REFLECTintBORDER_REFLECT_101intBORDER_REPLICATEintBORDER_WRAPprivate doublecprivate intdimlenxprivate intdimlenyprivate intdimlenzprivate doubleepsilonprivate doublegammaprivate double[][]sigmaprivate booleanwb-
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 voideigen_sort3d_m(double[][][] l1, double[][][] l2, double[][][] l3)private voideigen2d_m(double[][] l1, double[][] l2, double[][] a, double[][] b, double[][] c, double[][] d)private voideigen3d_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 voidfilter2Same(double[][] result, double[][] img, double[][] win)private voidfilter3Same(double[][][] result, double[][][] img, double[][][] win)private voidgaussian2nd2d(double[][] gxx, double[][] gxy, double[][] gyy, double[] s)private voidgaussian2nd3d(double[][][] gxx, double[][][] gyy, double[][][] gzz, double[][][] gxy, double[][][] gxz, double[][][] gyz, double[] s)private voidhessian2d(double[][] hxx, double[][] hxy, double[][] hyy, double[][] im, double[] s)private voidhessian3D(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)voidrunAlgorithm()Actually runs the algorithm.voidvesselnessv2d()voidvesselnessv3d()-
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:AlgorithmBaseActually runs the algorithm. Implemented by inheriting algorithms.- Specified by:
runAlgorithmin 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)
-
-