Class AlgorithmSplitAndMergeWatershed

  • All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.event.WindowListener, java.lang.Runnable, java.util.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 Detail

      • 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 Detail

      • AlgorithmSplitAndMergeWatershed

        public AlgorithmSplitAndMergeWatershed​(ModelImage destImage,
                                               ModelImage srcImage,
                                               int numNeighbor,
                                               boolean limitBins,
                                               int binNumber,
                                               boolean createWatershedLines,
                                               boolean merge,
                                               double mergeThreshold)
    • Method Detail

      • 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()