Skip to content
An API and GUI application for semi-automated interactive segmentation of medical images.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ci
matlab Merge branch 'dev' Jan 2, 2018
.gitlab-ci.yml
LICENSE
README.md

README.md

Slic-Seg

Slic-Seg is open-source software for semi-automated interactive segmentation of medical images.

Slic-Seg is a minimally interactive online learning-based segmentation method. An online random forest is first trained on data coming from scribbles provided by the user in one single selected start slice. This then forms the basis for a slice-by-slice framework that segments subsequent slices before incorporating them into the training set on the fly.

Slic-Seg was developed as part of the GIFT-Surg project. The algorithm and software were developed by Guotai Wang at the Translational Imaging Group in the Centre for Medical Image Computing at University College London (UCL).

Algorithm and code by Guotai Wang.

How to cite

If you use this software, please cite this paper.

Slic-Seg: A minimally interactive segmentation of the placenta from sparse and motion-corrupted fetal MRI in multiple views
Guotai Wang, Maria A. Zuluaga, Rosalind Pratt, Michael Aertsen, Tom Doel, Maria Klusmann, Anna L. David, Jan Deprest, Tom Vercauteren, Sébastien Ourselin

Disclaimer

  • This is PROTOTYPE software. Due to the low-level GPU computation there is a risk of system instability and crashes which could result in data loss.

Software links

License

Copyright (c) 2014-2016, University College London.

Slic-Seg is available as free open-source software under a BSD 3-Clause License. Other licenses may apply for dependencies:

  • Maxflow by Michael Rubinstein uses the BSD 2-Clause License
  • CoreMat by Tom Doel uses the MIT License
  • DicoMat by Tom Doel uses the BSD 3-Clause License

System requirements

The current version of Slic-Seg requries:

  • Matlab
  • Matlab Image Processing Toolbox (if files are to be loaded from DICOM)
  • A Matlab-supported C++ compiler installed and configured to work with mex files see here
  • The CUDA toolkit to be installed and configured to work with Matlab

Please note that there are cross-dependencies between Matlab, CUDA, C++ and the OS. Please see below for the platforms and versions we have tested against.

Supported Platforms

Slic-Seg is a cross-platform Matlab/C++ library. We have tested Slic-Seg on the following platforms:

  • Linux

  • Ubuntu Desktop 14.04.3 LTS 64-bit

  • NVIDIA 12GB GTX TITAN X

  • CUDA 7.5

  • Matlab R2015b

  • MacOS X

  • OS X Yosemite 10.10.5

  • NVIDIA GeForce GT 750M 1024 MB

  • XCode 7.2.1

  • CUDA 7.5

  • Matlab 2015b 64-bit

  • Windows

  • Windows 10 Professional 64-bit (NOTE: Matlab does not support GPU operations on 32-bit Windows)

  • 2GB NVIDIA Quadro 4000

  • Visual Studio 2013 Community Edition (NOTE: CUDA does not support Visual Studio 2015 or gcc)

  • CUDA 7.5

  • Matlab 2015b 64-bit

How to use

How to use the user interface

  • Run slicseg to launch the user interface.
  • The mex and cuda files will automatically compile if they have not already been compiled. This will fail if you have not installed and correctly set up your mex and cuda compilers to work with Matlab.
  • Click Load to load Dicom or a series of png image from a directory you specify
  • Choose your starting slice (usually a slice in the middle of the object)
  • Draw scribbles (lines) over parts of the object you wish to segment. The left button selects the foreground (object) and the right button selects the background.
  • Click Segment to segment the object on this slice, based on the scribbes you have entered
  • Select the range (start and end slices) over which the segmentation will propagate
  • Click Propagate to continue the segmentation over these slices
  • Add additional scribbles on the segmentation result for refinement if needed.
  • Click Save to save the segmentation

Issues

  • The most likely issues will be due to not having correctly set up your mex and cuda compilers.

  • If you get compilation errors, please fix your mex and cuda compiler setup, then run CompileSlicSeg recompile on the command window to force re-compilation.

  • OSX users, please check the supported versions of XCode. Note that NVIDIA CUDA may not support the latest versions of XCode.

  • If you are using OSX and receive a No supported compiler or SDK was found error, and you have already installed XCode, please [follows these instructions]( * Why can't MEX find a supported compiler in MATLAB R2015b after I upgraded to Xcode 7.0? )

  • On linux, linking problems may occur due to Matlab adding an internal linking path before mex is called. If you get version problems when linking C++ files you can force Matlab to find specific library versions using LD_PRELOAD, for example: LD_PRELOAD=/path-to-desired-library/libstdc++.so.6 /path-to-matlab/bin/matlab

Funding

This work was supported through an Innovative Engineering for Health award by the Wellcome Trust [WT101957], the Engineering and Physical Sciences Research Council (EPSRC) [NS/A000027/1] and a National Institute for Health Research Biomedical Research Centre UCLH/UCL High Impact Initiative.

Please note that NVIDA CUDA drivers and Matlab have specific compatibility requirements regarding C++ compilers

You can’t perform that action at this time.