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:
ActionListener,WindowListener,Runnable,EventListener
- 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:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate doublefinal intfinal intfinal intfinal intfinal intfinal intprivate doubleprivate intprivate intprivate intprivate final doubleprivate doubleprivate double[][]private booleanFields inherited from class gov.nih.mipav.model.algorithms.AlgorithmBase
destFlag, destImage, image25D, mask, maxProgressValue, minProgressValue, multiThreadingEnabled, nthreads, progress, progressModulus, progressStep, runningInSeparateThread, separable, srcImage, threadStoppedFields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY -
Constructor Summary
ConstructorsConstructorDescriptionAlgorithmVesselEnhancement(ModelImage destImg, ModelImage srcImg, double[][] sigma, double gamma, double alpha, double beta, double c, boolean wb) -
Method Summary
Modifier and TypeMethodDescriptionprivate 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) voidActually runs the algorithm.voidvoidMethods 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, windowOpenedMethods 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, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield
-
Field Details
-
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:
-
BORDER_CONSTANT
public final int BORDER_CONSTANT- See Also:
-
BORDER_REPLICATE
public final int BORDER_REPLICATE- See Also:
-
BORDER_REFLECT
public final int BORDER_REFLECT- See Also:
-
BORDER_WRAP
public final int BORDER_WRAP- See Also:
-
BORDER_REFLECT_101
public final int BORDER_REFLECT_101- See Also:
-
BORDER_DEFAULT
public final int BORDER_DEFAULT- See Also:
-
-
Constructor Details
-
AlgorithmVesselEnhancement
public AlgorithmVesselEnhancement(ModelImage destImg, ModelImage srcImg, double[][] sigma, double gamma, double alpha, double beta, double c, boolean wb)
-
-
Method Details
-
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)
-