Package gov.nih.mipav.model.algorithms
Class SpatialBroxOpticalFlow
java.lang.Object
java.lang.Thread
gov.nih.mipav.model.algorithms.AlgorithmBase
gov.nih.mipav.model.algorithms.SpatialBroxOpticalFlow
- All Implemented Interfaces:
ActionListener,WindowListener,Runnable,EventListener
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate ModelImageprivate ModelImageprivate final doubleprivate doubleprivate final doubleprivate intprivate final intprivate intprivate intprivate final doubleprivate final doubleprivate final intprivate final intprivate final intprivate final doubleprivate final booleanprivate final doubleprivate final doubleprivate ModelImageprivate ModelImageprivate double(package private) TVL1FLOWprivate booleanprivate doubleFields 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
ConstructorsConstructorDescriptionSpatialBroxOpticalFlow(ModelImage destuImg, ModelImage destvImg, ModelImage srcImg1, ModelImage srcImg2, double alpha, double gamma, int nscales, double zfactor, double TOL, int inner_iter, int outer_iter, boolean verbose) -
Method Summary
Modifier and TypeMethodDescriptionvoidbrox_optic_flow(double[] I1, double[] I2, double[] u, double[] v, int nx, int ny, double alpha, double gamma, double TOL, int inner_iter, int outer_iter, boolean verbose) Compute the optic flow with the Brox spatial methodvoidbrox_optic_flow(double[] I1, double[] I2, double[] u, double[] v, int nxx, int nyy, double alpha, double gamma, int nscales, double nu, double TOL, int inner_iter, int outer_iter, boolean verbose) Multiscale approach for computing the optical flow(package private) voiddivergence_u(double[] u, double[] v, double[] psi1, double[] psi2, double[] psi3, double[] psi4, double[] div_u, double[] div_v, int nx, int ny) Compute the divergence of the optical flowvoidDxx(double[] I, double[] Ixx, int nx, int ny) Compute the second order X derivativevoidDxy(double[] I, double[] Ixy, int nx, int ny) Compute the second order XY derivativevoidDyy(double[] I, double[] Iyy, int nx, int ny) Compute the second order Y derivativevoidgaussian(double[] in, double[] out, int xdim, int ydim, double sigma, int bc, int precision) Convolution with a Gaussianvoidgaussian(double[] I, int xdim, int ydim, double sigma, int bc, int precision) Convolution with a Gaussian(package private) voidgradient(double[] input, double[] dx, double[] dy, int nx, int ny) Compute the gradient with central differencesvoidmask3x3(double[] input, double[] output, int nx, int ny, double[] mask) Function to apply a 3x3 mask to an imagevoidpsi_data(double[] I1, double[] I2, double[] I2x, double[] I2y, double[] du, double[] dv, double[] psip, int nx, int ny) Compute the coefficients of the robust functional (data term)(package private) voidpsi_divergence(double[] psi, double[] psi1, double[] psi2, double[] psi3, double[] psi4, int nx, int ny) Compute the coefficients of the divergence termvoidpsi_gradient(double[] I1x, double[] I1y, double[] I2x, double[] I2y, double[] I2xx, double[] I2xy, double[] I2yy, double[] du, double[] dv, double[] psip, int nx, int ny) Compute the coefficients of the robust functional (gradient term)voidpsi_smooth(double[] ux, double[] uy, double[] vx, double[] vy, double[] psi, int nx, int ny) Compute the coefficients of the robust functional (smoothness term)voidActually runs the algorithm.doublesor_iteration(double[] Au, double[] Av, double[] Du, double[] Dv, double[] D, double[] du, double[] dv, double alpha, double[] psi1, double[] psi2, double[] psi3, double[] psi4, int i, int i0, int i1, int j, int nx, int j0, int j1) SOR iteration in one positionMethods 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
-
tvl1
TVL1FLOW tvl1 -
EPSILON
private final double EPSILON- See Also:
-
MAXITER
private final int MAXITER- See Also:
-
SOR_PARAMETER
private final double SOR_PARAMETER- See Also:
-
GAUSSIAN_SIGMA
private final double GAUSSIAN_SIGMA- See Also:
-
PAR_DEFAULT_ALPHA
private final double PAR_DEFAULT_ALPHA- See Also:
-
PAR_DEFAULT_GAMMA
private final double PAR_DEFAULT_GAMMA- See Also:
-
PAR_DEFAULT_NSCALES
private final int PAR_DEFAULT_NSCALES- See Also:
-
PAR_DEFAULT_ZFACTOR
private final double PAR_DEFAULT_ZFACTOR- See Also:
-
PAR_DEFAULT_TOL
private final double PAR_DEFAULT_TOL- See Also:
-
PAR_DEFAULT_INNER_ITER
private final int PAR_DEFAULT_INNER_ITER- See Also:
-
PAR_DEFAULT_OUTER_ITER
private final int PAR_DEFAULT_OUTER_ITER- See Also:
-
PAR_DEFAULT_VERBOSE
private final boolean PAR_DEFAULT_VERBOSE- See Also:
-
srcImage1
-
srcImage2
-
destuImage
-
destvImage
-
alpha
private double alpha -
gamma
private double gamma -
nscales
private int nscales -
zfactor
private double zfactor -
TOL
private double TOL -
initer
private int initer -
outiter
private int outiter -
verbose
private boolean verbose
-
-
Constructor Details
-
SpatialBroxOpticalFlow
public SpatialBroxOpticalFlow() -
SpatialBroxOpticalFlow
public SpatialBroxOpticalFlow(ModelImage destuImg, ModelImage destvImg, ModelImage srcImg1, ModelImage srcImg2, double alpha, double gamma, int nscales, double zfactor, double TOL, int inner_iter, int outer_iter, boolean verbose)
-
-
Method Details
-
runAlgorithm
public void runAlgorithm()Description copied from class:AlgorithmBaseActually runs the algorithm. Implemented by inheriting algorithms.- Specified by:
runAlgorithmin classAlgorithmBase
-
gaussian
public void gaussian(double[] in, double[] out, int xdim, int ydim, double sigma, int bc, int precision) Convolution with a Gaussian -
gaussian
public void gaussian(double[] I, int xdim, int ydim, double sigma, int bc, int precision) Convolution with a Gaussian -
mask3x3
public void mask3x3(double[] input, double[] output, int nx, int ny, double[] mask) Function to apply a 3x3 mask to an image -
Dxx
public void Dxx(double[] I, double[] Ixx, int nx, int ny) Compute the second order X derivative -
Dyy
public void Dyy(double[] I, double[] Iyy, int nx, int ny) Compute the second order Y derivative -
Dxy
public void Dxy(double[] I, double[] Ixy, int nx, int ny) Compute the second order XY derivative -
gradient
void gradient(double[] input, double[] dx, double[] dy, int nx, int ny) Compute the gradient with central differences -
psi_divergence
void psi_divergence(double[] psi, double[] psi1, double[] psi2, double[] psi3, double[] psi4, int nx, int ny) Compute the coefficients of the divergence term -
divergence_u
void divergence_u(double[] u, double[] v, double[] psi1, double[] psi2, double[] psi3, double[] psi4, double[] div_u, double[] div_v, int nx, int ny) Compute the divergence of the optical flow -
psi_data
public void psi_data(double[] I1, double[] I2, double[] I2x, double[] I2y, double[] du, double[] dv, double[] psip, int nx, int ny) Compute the coefficients of the robust functional (data term) -
psi_gradient
public void psi_gradient(double[] I1x, double[] I1y, double[] I2x, double[] I2y, double[] I2xx, double[] I2xy, double[] I2yy, double[] du, double[] dv, double[] psip, int nx, int ny) Compute the coefficients of the robust functional (gradient term) -
psi_smooth
public void psi_smooth(double[] ux, double[] uy, double[] vx, double[] vy, double[] psi, int nx, int ny) Compute the coefficients of the robust functional (smoothness term) -
sor_iteration
public double sor_iteration(double[] Au, double[] Av, double[] Du, double[] Dv, double[] D, double[] du, double[] dv, double alpha, double[] psi1, double[] psi2, double[] psi3, double[] psi4, int i, int i0, int i1, int j, int nx, int j0, int j1) SOR iteration in one position -
brox_optic_flow
public void brox_optic_flow(double[] I1, double[] I2, double[] u, double[] v, int nx, int ny, double alpha, double gamma, double TOL, int inner_iter, int outer_iter, boolean verbose) Compute the optic flow with the Brox spatial method -
brox_optic_flow
public void brox_optic_flow(double[] I1, double[] I2, double[] u, double[] v, int nxx, int nyy, double alpha, double gamma, int nscales, double nu, double TOL, int inner_iter, int outer_iter, boolean verbose) Multiscale approach for computing the optical flow
-