A software for fast segmentation and centerline extraction of tubular structures (e.g. blood vessels and airways) from different modalities and organs using GPUs and OpenCL
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.
CMake
OpenCLUtilityLibrary @ 73de670 updated OUL Feb 7, 2014
SIPL @ dd8db22
parameters
tests
.gitmodules
CMakeLists.txt
LICENSE
README.md
commons.hpp
eigenanalysisOfHessian.cpp
eigenanalysisOfHessian.hpp
globalCenterlineExtraction.cpp
globalCenterlineExtraction.hpp
gradientVectorFlow.cpp This compiles, but seg faults due to the destroyed context object whi… Jan 30, 2014
gradientVectorFlow.hpp
inputOutput.cpp
inputOutput.hpp
kernels.cl improved speed in spline tdf Jun 28, 2013
kernels_no_3d_write.cl
main.cpp help message will no print out all parameters Oct 28, 2013
parallelCenterlineExtraction.cpp
parallelCenterlineExtraction.hpp
parameters.cpp
parameters.hpp
ridgeTraversalCenterlineExtraction.cpp moved ridge traversal into separate files Jul 3, 2013
ridgeTraversalCenterlineExtraction.hpp moved ridge traversal into separate files Jul 3, 2013
segmentation.cpp This compiles, but seg faults due to the destroyed context object whi… Jan 30, 2014
segmentation.hpp
timing.hpp
tube-segmentation.cpp
tube-segmentation.hpp started on converting the code to using the opencl utility lib Jan 30, 2014
tubeDetectionFilters.cpp Moved tube detection filters out into separate files Jul 3, 2013
tubeDetectionFilters.hpp Moved tube detection filters out into separate files Jul 3, 2013

README.md

Tube Segmentation Framework

The tube segmentation framework is a software for fast segmentation and centerline extraction of tubular structures (e.g. blood vessels and airways) from different modalities (e.g. CT, MR and US) and organs using GPUs and OpenCL.

For details about the implementation see the following publication:
GPU accelerated segmentation and centerline extraction of tubular structures in medical images
Erik Smistad, Anne C. Elster and Frank Lindseth
International Journal of Computer Assisted Radiology and Surgery
2013

If you use this software in any publications, please cite our article.

See the file LICENSE for license information.

Dependencies

  • OpenCL. You need an OpenCL implementation installed on your system to use this software (AMD, NVIDIA, Intel or Apple)
  • Boost iostreams. E.g. on Ubuntu linux use the following package: libboost-iostreams-dev
  • The two submodules: SIPL and OpenCLUtilities
  • GTK 2 for visualization (not required, used by the SIPL module). On Ubuntu linux use the following package: libgtk2.0-dev

Compiling

To compile the software first make sure that all software dependencies are installed and set up correctly. Next, use cmake.

For instance on linux, do the following:

cmake .
make -j8

Usage

To see the help message use the software with no arguments. ./tubeSegmentation

The first arguments is the dataset to process. This has to be a metadata (.mhd) file.

Some test data is available with the software. You can test the program with the following command:

./tubeSegmentation tests/data/synthetic/dataset_1/noisy.mhd --parameters Synthetic-Vascusynth --display

Parameters

This software has a lot of parameters and several parameter presets are available:

  • Lung-Airways-CT
  • Neuro-Vessels-USA
  • Neuro-Vessels-MRA
  • AAA-Vessels-CT
  • Liver-Vessels-CT
  • Synthetic-Vascusynth

The parameter preset is set with the program argument "--parameters ".

Tests

This software contains several tests written with Google Test. Install Google Test and run cmake again to compile the tests. Run the tests using the command ./tests/runTests