From SlicerWiki
Jump to: navigation, search
Home < Modules:EMSegment-Command-Line3.6

Return to Slicer 3.6 Documentation

Return to EMSegmenter Overview Page

Gallery of New Features

Module Name

EM Segment Command-Line Executable


General Information

Module Type & Category

Type: CLI

Category: Segmentation

Authors, Collaborators & Contact

  • Sebastien Barre: Kitware, Inc.
  • Brad Davis: Kitware, Inc.
  • Kilian Pohl: IBM
  • Polina Golland: MIT
  • Yumin Yuan: Kitware, Inc.
  • Contact: Kilian Pohl,

Module Description

This module is used to simplify the process of segmenting large collections of images by providing a command line interface to the EMSegment algorithm for script and batch processing.


The primary function of the EMSegmenter module is to step the user through the process of calibrating, via algorithm parameters, the segmentation algorithm to a particular set of input data. However, once a successful collection of parameters is established, the user will commonly want to bypass this detailed calibration process when segmenting new images by using those parameters collected from the calibration process in EMSegmenter module. The EMSegment Command-line module which wraps the EMSegmentCommandLine executable provides this batch processing capability. The EMSegment Command-line module is automatic generated from the EMSegmentCommandLine executable using the --xml option.

Use Cases, Examples, Tutorials

This module is especially appropriate for segmenting large quantity of data by scripted/batch processing. It requires predefined parameter set, and new target/atlas images can be specified on command line.

  • A full Tutorial for all three EMSegment modules

These slides and data describe the Slicer3 implementation of all three EMSegment modules and demonstrate their use. A recent (later than 7Jan08) version of Slicer3 is required to run the test data.

Slides - Data

  • Export EMSEG_TUTORIAL_DIR environment variable ( e.g. <PATH TO TUTORIAL> = /tmp/EMSegmentTutorial-Jan2008/ )

Quick Tour of Features and Use

The above EMSegment tutorial data set demonstrates the use of the command line interface.

If the command-line module is invoked from Slicer3 GUI, there will be a Parameters panel:
EMSegment Simple Parameters Panel
  1. MRML Scene: Select the mrml scene for the tutorial parameter set
  2. Result Labelmap: Select a new image filename for output labelmap
  3. Target Volumes: Select input target volumes (Multiple files can be selected at one time)
  4. Click `Apply’

Here are some basic examples to run this module from command line directly

  • Export the Slicer3_HOME environment variable ( e.g. <PATH_TO_SLICER> = /tmp/3DSlicer/Slicer3-build/ )
export Slicer3_HOME=<PATH_TO_SLICER>
  • Run the executable to see the documentation
${Slicer3_HOME}/Slicer3 --launch $Slicer3_HOME/lib/Slicer3/Plugins/EMSegmentCommandLine --help
  • Run the segmentation algorithm with tutorial data

The script "" demonstrates how to run the EMSegmenter on the tutorial data. The resulting labelmap is written into the VolumeData_Output directory. Try adding the "--intermediateResultsDirectory myDirectoryName" flag to write out intermediate data. Intermediate data is saved in the "myDirectoryName" directory: you can load this scene to visualize the intermediate data (e.g. intensity normalized and registered images) and segmentation results.

source ${Slicer3_HOME}/bin/
${Slicer3_HOME}/Slicer3 --launch $Slicer3_HOME/lib/Slicer3/Plugins/EMSegmentCommandLine \
--verbose \
--mrmlSceneFileName $EMSEG_TUTORIAL_DIR/EMSeg-Brain-MRT1T2.mrml \
--intermediateResultsDirectory $EMSEG_TUTORIAL_DIR/Working/$RUN_NAME \
--resultVolumeFileName $EMSEG_TUTORIAL_DIR/VolumeData_Output/Segmentation-$RUN_NAME.nhdr \
  • Run the segmentation algorithm with new data

The other script, "" demonstrate how to run the EMSegmenter on new data. Because the tutorial EMSegment parameters are designed to accept one T1 and one T2 input image, each script supplies one new T1 and one T2 to be segmented (NB: order is important).

source ${Slicer3_HOME}/bin/
${Slicer3_HOME}/Slicer3 --launch $Slicer3_HOME/lib/Slicer3/Plugins/EMSegmentCommandLine \
--verbose \
--mrmlSceneFileName $EMSEG_TUTORIAL_DIR/EMSeg-Brain-MRT1T2.mrml \
--targetVolumeFileNames \
    $EMSEG_TUTORIAL_DIR/VolumeData_Input/Target/t1.nhdr,$EMSEG_TUTORIAL_DIR/VolumeData_Input/Target/t2.nhdr \
--resultVolumeFileName \
    VolumeData_Output/Segmentation-$RUN_NAME.nhdr \
--intermediateResultsDirectory \
  • Run the MRI-Human-Brain task
source ${Slicer3_HOME}/bin/
${Slicer3_HOME}/Slicer3 --launch $Slicer3_HOME/lib/Slicer3/Plugins/EMSegmentCommandLine \
--verbose \
--mrmlSceneFileName \
    $Slicer3_HOME/share/Slicer3/Modules/EMSegment/Tasks/MRI-Human-Brain.mrml \
--targetVolumeFileNames  \
    $Slicer3_HOME/../Slicer3/Modules/EMSegment/Testing/TestData/MiscVolumeData/MRIHumanBrain_T1_aligned.nrrd \
--resultVolumeFileName \
    /tmp/Result_MRI-Human-Brain.nhdr \


The EMSegment Command-line module is automatic generated from the EMSegmentCommandLine executable using the --xml option. The EMSegmentCommandLine provides a command line interface to the EMSegment algorithm for script/batch processing of large collection of data with predefined parameters set.

Notes from the Developer(s)



Slicer3 base modules


On the Dashboard, these tests verify that the module is working on various platforms:

Known bugs

Follow this link to the Slicer3 bug tracker.

Usability issues

The EMSegmenter can be adapted to many segmentation problems. However, there is no "default" set of parameters that will work for all segmentation problems.

  • Atlas-to-target registration and intensity normalization are very important; it will be most effective to apply these steps using algorithms that are customized to your data. Defaults are provided but they may perform poorly for your data---this will lead to poor segmentation results.

Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.

Source code & documentation

Links for the module.

More Information


Funding for the EMSegmenter module was provided by NAMIC and NAC.


Pohl K, Bouix S, Nakamura M, Rohlfing T, McCarley R, Kikinis R, Grimson W, Shenton M, Wells W. A Hierarchical Algorithm for MR Brain Image Parcellation. IEEE Transactions on Medical Imaging. 2007 Sept;26(9):1201-1212. [bib]