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

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