Package gov.nih.mipav.model.algorithms
Class TemporalBroxOpticalFlow
java.lang.Object
java.lang.Thread
gov.nih.mipav.model.algorithms.AlgorithmBase
gov.nih.mipav.model.algorithms.TemporalBroxOpticalFlow
- 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 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
ConstructorsConstructorDescriptionTemporalBroxOpticalFlow(ModelImage destuImg, ModelImage destvImg, ModelImage srcImg, 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[] I, double[] u, double[] v, int nx, int ny, int frames, double alpha, double gamma, double TOL, int inner_iter, int outer_iter, boolean verbose) Compute the optic flow with the Brox temporal methodvoidbrox_optic_flow(double[] I, double[] u, double[] v, int nxx, int nyy, int frames, double alpha, double gamma, int nscales, double nu, double TOL, int inner_iter, int outer_iter, boolean verbose) Multiscale approach for computing the optical flowvoiddivergence_u(double[] u, double[] v, double[] psi1, double[] psi2, double[] psi3, double[] psi4, double[] psi5, double[] psi6, double[] div_u, double[] div_v, int nx, int ny, int nz) 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 Gaussianvoidgetminmax(double[] min, double[] max, double[] x, int n) Compute the max and min of an arrayvoidgradient(double[] input, double[] dx, double[] dy, int nx, int ny) Compute the gradient with central differencesvoidgradient3(double[] input, double[] dx, double[] dy, double[] dz, int nx, int ny, int nz) Compute the 3D gradient with central differencesvoidimage_normalization(double[] I, double[] In, int size) Function to normalize the images between 0 and 255voidmask3x3(double[] input, double[] output, int nx, int ny, double[] mask) Function to apply a 3x3 mask to an imagedoubleprocess_frame(double[] Au, double[] Av, double[] Du, double[] Dv, double[] D, double[] du, double[] dv, double alpha, double[] psi1, double[] psi2, double[] psi3, double[] psi4, double[] psi5, double[] psi6, int f, int nx, int ny, int df0, int df1) Procedure to compute the motion increment in one framevoidpsi_data(double[] I1, double[] I2, double[] I2x, double[] I2y, double[] du, double[] dv, double[] psip, int size) Compute the coefficients of the robust functional (data term)voidpsi_divergence(double[] psi, double[] psi1, double[] psi2, double[] psi3, double[] psi4, double[] psi5, double[] psi6, int nx, int ny, int nz) 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 size) Compute the coefficients of the robust functional (gradient term)voidpsi_smooth(double[] ux, double[] uy, double[] ut, double[] vx, double[] vy, double[] vt, double[] psi, int size) 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, double[] psi5, double[] psi6, int f, int df0, int df1, int i, int ny, int dy0, int dy1, int j, int nx, int dx0, int dx1) 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:
-
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
-
TemporalBroxOpticalFlow
public TemporalBroxOpticalFlow() -
TemporalBroxOpticalFlow
public TemporalBroxOpticalFlow(ModelImage destuImg, ModelImage destvImg, ModelImage srcImg, 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[] I, int xdim, int ydim, double sigma, int bc, int precision) Convolution with a Gaussian -
gaussian
public void gaussian(double[] in, double[] out, 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
public void gradient(double[] input, double[] dx, double[] dy, int nx, int ny) Compute the gradient with central differences -
gradient3
public void gradient3(double[] input, double[] dx, double[] dy, double[] dz, int nx, int ny, int nz) Compute the 3D gradient with central differences -
psi_divergence
public void psi_divergence(double[] psi, double[] psi1, double[] psi2, double[] psi3, double[] psi4, double[] psi5, double[] psi6, int nx, int ny, int nz) Compute the coefficients of the divergence term -
divergence_u
public void divergence_u(double[] u, double[] v, double[] psi1, double[] psi2, double[] psi3, double[] psi4, double[] psi5, double[] psi6, double[] div_u, double[] div_v, int nx, int ny, int nz) 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 size) 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 size) Compute the coefficients of the robust functional (gradient term) -
psi_smooth
public void psi_smooth(double[] ux, double[] uy, double[] ut, double[] vx, double[] vy, double[] vt, double[] psi, int size) 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, double[] psi5, double[] psi6, int f, int df0, int df1, int i, int ny, int dy0, int dy1, int j, int nx, int dx0, int dx1) SOR iteration in one position -
process_frame
public double process_frame(double[] Au, double[] Av, double[] Du, double[] Dv, double[] D, double[] du, double[] dv, double alpha, double[] psi1, double[] psi2, double[] psi3, double[] psi4, double[] psi5, double[] psi6, int f, int nx, int ny, int df0, int df1) Procedure to compute the motion increment in one frame -
brox_optic_flow
public void brox_optic_flow(double[] I, double[] u, double[] v, int nx, int ny, int frames, double alpha, double gamma, double TOL, int inner_iter, int outer_iter, boolean verbose) Compute the optic flow with the Brox temporal method -
getminmax
public void getminmax(double[] min, double[] max, double[] x, int n) Compute the max and min of an array -
image_normalization
public void image_normalization(double[] I, double[] In, int size) Function to normalize the images between 0 and 255 -
brox_optic_flow
public void brox_optic_flow(double[] I, double[] u, double[] v, int nxx, int nyy, int frames, 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
-