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

public class SpatialBroxOpticalFlow extends AlgorithmBase
  • Field Details

  • 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: AlgorithmBase
      Actually runs the algorithm. Implemented by inheriting algorithms.
      Specified by:
      runAlgorithm in class AlgorithmBase
    • 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