Class AlgorithmTextureSegmentation

java.lang.Object
java.lang.Thread
gov.nih.mipav.model.algorithms.AlgorithmBase
gov.nih.mipav.model.algorithms.AlgorithmTextureSegmentation
All Implemented Interfaces:
AlgorithmInterface, ActionListener, WindowListener, Runnable, EventListener

public class AlgorithmTextureSegmentation extends AlgorithmBase implements AlgorithmInterface
This software implements the factorization-based segmentation algorithm. The original code was written in MATLAB and C by: Jiangye Yuan Computational Sciences and and Engineering Division Oak Ridge National Laboratory, Oak Ridge, Tennessee 37831 yuanj@ornl.gov Reference: [1] J. Yuan and D. L. Wang. Factorization-based texture segmentation. Technical Report OSU-CISRC-1/13 -TR01, 2013. The website for this code is: https://sites.google.com/site/factorizationsegmentation/ This code was ported to Java by William Gandler
  • Field Details

    • filterOp

      private static final int filterOp
      See Also:
    • operationType

      private int operationType
    • filter

      private double[] filter
    • windowSize

      private int windowSize
    • segmentNumber

      private int segmentNumber
    • pt

      private WildMagic.LibFoundation.Mathematics.Vector3f[] pt
    • contourMask

      private BitSet contourMask
    • nonNegativity

      private boolean nonNegativity
    • removeSmallRegions

      private boolean removeSmallRegions
    • omega

      private double omega
    • filterNumber

      private int filterNumber
    • binNumber

      private int binNumber
    • xDim

      private int xDim
    • yDim

      private int yDim
  • Constructor Details

    • AlgorithmTextureSegmentation

      public AlgorithmTextureSegmentation(ModelImage destImage, ModelImage srcImage, int windowSize, int segmentNumber, WildMagic.LibFoundation.Mathematics.Vector3f[] pt, BitSet contourMask, boolean nonNegativity, boolean removeSmallRegions)
  • 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
    • RmSmRg

      private void RmSmRg(int[][] segLabelLarge, int[][] segLabel, int minSize)
    • expand

      private void expand(int y, int x, int[] stk, int[][] segLabelLarge, int[][] segLabel, int labelN, int[] cnt, int[] tb, int[] bb, int[] lb, int[] rb, int tgt)
    • expand2

      private void expand2(int y, int x, int[] stk, int[] mark, int[][] segLabel, int labelN, int[] cnt, int[] tb, int[] bb, int[] lb, int[] rb, int tgt)
    • SHedge_ls

      private void SHedge_ls(double[][] EdgeMap, int ws, int dism, double[][][] sh_mx)
    • x2dist

      private double x2dist(double[] a, double[] b, int k)
    • l2dist

      private double l2dist(double[] a, double[] b, int k)
    • SHcomp

      private void SHcomp(double[][][] sh_mx, int ws, double[][][] Ig)
    • algorithmPerformed

      public void algorithmPerformed(AlgorithmBase algorithm)
      Description copied from interface: AlgorithmInterface
      Called after an algorithm this listener is registered to exits (maybe successfully, maybe not). If the algorithm is run in a separate thread, this call will be made within that thread. If not, this call will be made from that same, shared thread.
      Specified by:
      algorithmPerformed in interface AlgorithmInterface
      Parameters:
      algorithm - the algorithm which has just completed