From SlicerWiki
Jump to: navigation, search
Home < Documentation < Nightly < Modules < GrayscaleFillHoleImageFilter

For the stable Slicer documentation, visit the 4.6 page.

Introduction and Acknowledgements

This work is part of the National Alliance for Medical Image Computing (NA-MIC), funded by the National Institutes of Health through the NIH Roadmap for Medical Research, Grant U54 EB005149. Information on NA-MIC can be obtained from the NA-MIC website.
Author: Jim Miller, GE
Contact: Jim Miller


Module Description

GrayscaleFillholeImageFilter fills holes in a grayscale image. Holes are local minima in the grayscale topography that are not connected to boundaries of the image. Gray level values adjacent to a hole are extrapolated across the hole.

This filter is used to smooth over local minima without affecting the values of local maxima. If you take the difference between the output of this filter and the original image (and perhaps threshold the difference above a small value), you'll obtain a map of the local minima.

This filter uses the itkGrayscaleGeodesicErodeImageFilter. It provides its own input as the "mask" input to the geodesic erosion. The "marker" image for the geodesic erosion is constructed such that boundary pixels match the boundary pixels of the input image and the interior pixels are set to the maximum pixel value in the input image.

Geodesic morphology and the Fillhole algorithm is described in Chapter 6 of Pierre Soille's book "Morphological Image Analysis: Principles and Applications", Second Edition, Springer, 2003. 
A companion filter, Grayscale Grind Peak, removes peaks in grayscale images.

Use Cases

Most frequently used for these scenarios:

  • Use Case 1: In CT images, trabecular areas of the bone show up as lower HU values than the outer bone surface making it difficult to segment the bone region using simple thresholds. The trabecular region (local minima) can be filled in using the GrayscaleFillHoleFilter to accomplish the needed bone segmentation.


GrayscaleFillHoleImageFilter.exe <std::string> <std::string>

     (required)  Input volume to be filtered

     (required)  Output filtered



Panels and their use


  • IO: Input/output parameters
    • Input Volume (inputVolume): Input volume to be filtered
    • Output Volume (outputVolume): Output filtered

List of parameters generated transforming this XML file using this XSL file. To update the URL of the XML file, edit this page.

Similar Modules




Information for Developers