Class AlgorithmSplitAndMergeWatershed

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

public class AlgorithmSplitAndMergeWatershed extends AlgorithmBase
Author:
ilb Separate dark VOIs on a constant light background only works if you do lower completion first. Reference: 1.) Fast watershed algorithms: analysis and extensions by Bogdan P. Dobrin, Timo Viero, and Moncef Gabbouj. 2.) The Watershed Transform: Definitions, Algorithms, and Parallelization Strategies by Jos B.T.M. Roerdink and Arnold Meijster, Fundamentals Informaticae 41 (2001), pp. 187-228. 3.) Automated Sulcal Segmentation Using Watersheds on the Cortical Surface by Maryam E. Rettmann, Xiao Han, Chenyang Xu, and Jerry L. Prince, NeuroImage 15, 2002, Section Merging of Catchment Basins, p.338. Reference 2 makes the following criticism about this algorithm: 'Isolated' regions. When computing the watershed transform, regions in the image may arise which are completely surrounded by watershed pixels. In some implementations of watershed transforms by topographical distance, such regions may in fact become temporarily or permanently 'isolated'. This is a defect of the particular implementation, since, according to Corollary 3.1, watershed pixels should be propagated. Such 'problems' are often solved by ad hoc modifications of the implementation, which still do not correctly implement the definition.
  • Field Details

    • WSHED

      private static final int WSHED
      See Also:
    • NARM

      private static final int NARM
      See Also:
    • INOQ

      private static final int INOQ
      See Also:
    • INIT

      private static final int INIT
      See Also:
    • PIAP

      private static final int PIAP
      See Also:
    • numNeighbor

      private int numNeighbor
    • limitBins

      private boolean limitBins
    • binNumber

      private int binNumber
    • createWatershedLines

      private boolean createWatershedLines
    • merge

      private boolean merge
    • mergeThreshold

      private double mergeThreshold
  • Constructor Details

    • AlgorithmSplitAndMergeWatershed

      public AlgorithmSplitAndMergeWatershed(ModelImage destImage, ModelImage srcImage, int numNeighbor, boolean limitBins, int binNumber, boolean createWatershedLines, boolean merge, double mergeThreshold)
  • 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
    • runBW

      public void runBW()
    • runColor

      private void runColor()