MCF Imaging Software

Model-Controlled Flooding is a methodology for image preprocessing and segmentation that allows for the integration of a priori information about image objects into flooding simulation with watershed methods for segmentation. Modeling the initial seeding, region growing and stopping rules of the watershed flooding process allows users to customize the simulation with user-defined or default model functions incorporating prior information. MCF preprocessing defines images with desirable features for further segmentation using existing methods and can lead to substantial improvements. The approach uses a size filter based on the MCF framework and has been successively demonstrated in diverse applications: concealed object detection, speckle counting in single cell studies, and on benchmark microscopic image data sets. MCF achieves benchmark error rates well below those reported in the literature on multiple test data sets, and in comparisons with other algorithms. It is alsy rather easily adapted to new imaging contexts.

MCF is introduced and studied in several applications in

The code is just as used in the studies in the above paper, and can be used to replicate those applications as well as a starting point for customization for other applications.

Folders and Files:

  • images.tar.gz - compressed archive (8Mb) of multiple source/data images that are used in the examples
  • dist.tar.gz - several Matlab utility functions and MF/AGR functions implementing the MCF methodology
  • Examples:
    • example1.m, Matlab script that can be used to duplicate example 1 in the paper;
    • example2.m, Matlab script that can be used to duplicate example 2 in the paper;
    • example3.m, Matlab script that can be used to duplicate example 3 in the paper;
    • exampleCO.m, Matlab script that can be used to duplicate the concealed object example in the paper;
    • exampleSC.m, Matlab script that can be used to duplicate the speckle counting example in the paper;
    • example_fly.m, Matlab script that can be used to duplicate the Fly data example in the paper;
    • example_human.m, Matlab script that can be used to duplicate the Human data example in the paper;
    • example_customizedsizefilter.m, Matlab script that can be used to explore customization of the size filter to new applications.


This work was supported in part by the U.S. National Institutes of Health under grants P50-GM081883 and RC1-AI086032. Any opinions, findings and conclusions or recommendations expressed in this work are those of the authors and do not necessarily reflect the views of the NIH.

This software is made freely available to any interested user. The authors can provide no support nor assistance with implementations beyond the details and examples here, nor extensions of the code for other purposes.

It is understood by the user that neither the authors nor Duke University bear any responsibility nor assume any liability for any end-use of this software. It is expected that appropriate credit/acknowledgement be given should the software be included as an element in other software development or in publications.

More software from the West group