Home

Awesome

Awesome medical imaging

Awesome

This is an awesome list of software that I use to do research in medical imaging.

Kitware stuff

<img src="https://www.kitware.com/main/wp-content/uploads/2017/03/Kitware_Logo.png" alt="kitware" width="200"/>

ITK - Insight Segmentation and Registration Toolkit

<img src="https://discourse.itk.org/uploads/default/original/1X/83aa25abdcbd323ce491ff99db5dfe2e59d7fd4d.png" alt="itk" width="200"/>

ITK is an open-source, cross-platform system that provides developers with an extensive suite of software tools for image analysis. Developed through extreme programming methodologies, ITK employs leading-edge algorithms for registering and segmenting multidimensional data.

SimpleITK

<img src="https://discourse.itk.org/uploads/default/original/2X/6/6104191cf31c3c43abc6f381c58f46e34e511511.png" alt="simpleitk" width="200"/>

SimpleITK is a simplified layer built on top of ITK, intended to facilitate its use in rapid prototyping, education, interpreted languages.

itk - ITKPythonPackage

PyPI package for a pythonic interface to ITK.

VTK - Visualization Toolkit

<img src="https://c1.staticflickr.com/3/2244/2286824312_3d69ae384a_z.jpg?zz=1" alt="vtk" width="200"/>

The Visualization Toolkit (VTK) is open source software for manipulating and displaying scientific data. It comes with state-of-the-art tools for 3D rendering, a suite of widgets for 3D interaction, and extensive 2D plotting capability.

Link to VTK examples

3D Slicer

<img src="https://www.slicer.org/w/img_auth.php/1/1f/3DSlicerLogo-H-Color-1273x737.png" alt="slicer" width="200"/>

3D Slicer is an open source software platform for medical image informatics, image processing, and three-dimensional visualization. Built over two decades through support from the National Institutes of Health and a worldwide developer community, Slicer brings free, powerful cross-platform processing tools to physicians, researchers, and the general public.

Link to 3D Slicer tutorials

ITK-SNAP

<img src="http://www.itksnap.org/Artwork/snaplogo3.png" alt="itksnap" width="200"/>

ITK-SNAP is a software application used to segment structures in 3D medical images. It provides semi-automatic segmentation using active contour methods, as well as manual delineation and image navigation.

NIPY

<img src="http://nipy.org/img/nipy.svg" alt="nipy" width="200"/>

NIPY is a community of practice devoted to the use of the Python programming language in the analysis of neuroimaging data.

Analysis Pipeline Management

Nipype

<img src="http://miykael.github.io/nipype-beginner-s-guide/_static/nipype-beginners-guide-html_logo.png" alt="nipype" width="200"/>

Nipype, an open-source, community-developed initiative under the umbrella of NiPy, is a Python project that provides a uniform interface to existing neuroimaging software and facilitates interaction between these packages within a single workflow.

File I/O

NiBabel

Read / write access to some common neuroimaging file formats.

dcm2niix

dcm2niix is a tool designed to convert neuroimaging data from the DICOM format to the NIfTI format.

Neuroimaging

ANTs - Advanced Normalization Tools

Advanced Normalization Tools (ANTs) extracts information from complex datasets that include imaging.

It heavily relies on ITK.

SPM - Statistical Parametric Mapping

Statistical Parametric Mapping refers to the construction and assessment of spatially extended statistical processes used to test hypotheses about functional imaging data. These ideas have been instantiated in software that is called SPM.

The SPM software package has been designed for the analysis of brain imaging data sequences. The sequences can be a series of images from different cohorts, or time-series from the same subject. The current release is designed for the analysis of fMRI, PET, SPECT, EEG and MEG.

FSL - Functional Magnetic Resonance Imaging of the Brain Software Library

<img src="https://fsl.fmrib.ox.ac.uk/fsl/wiki_static/fsl/img/fsl-logo-x2.png" alt="fsl" width="200"/>

FSL is a comprehensive library of analysis tools for FMRI, MRI and DTI brain imaging data.

FreeSurfer

<img src="https://surfer.nmr.mgh.harvard.edu/fscortex.png" alt="freesurfer" width="200"/>

An open source software suite for processing and analyzing (human) brain MRI images.

MRtrix3

MRtrix3 provides a set of tools to perform various types of diffusion MRI analyses, from various forms of tractography through to next-generation group-level analyses.

Registration

NiftyReg

<img src="https://cmiclab.cs.ucl.ac.uk/uploads/-/system/project/avatar/252/nifty_reg_logo.png" alt="NiftyReg" width="200"/> NiftyReg is an open-source software for efficient medical image registration.

ANTs

Deep learning

NiftyNet

<img src="http://www.niftynet.io/img/niftynet-logo.png" alt="NiftyNet" width="200"/> > NiftyNet is a TensorFlow-based open-source convolutional neural networks (CNNs) platform for research in medical image analysis and image-guided therapy. NiftyNet’s modular structure is designed for sharing networks and pre-trained models.

File formats

NIfTI - Neuroimaging Informatics Technology Initiative

<img src="https://nifti.nimh.nih.gov/iconBlue.jpg" alt="NIfTI" width="200"/> > NIfTI-1 is a new Analyze-style data format, proposed by the NIfTI DFWG as a short-term measure to facilitate inter-operation of functional MRI data analysis software packages.

DICOM - Digital Imaging and Communications in Medicine

<img src="http://blog.nema.org/wp-content/uploads/2016/11/DICOM-logo-e1479849233486.jpg" alt="DICOM" width="200"/> > DICOM® (Digital Imaging and Communications in Medicine) is the international standard to transmit, store, retrieve, print, process, and display medical imaging information.

NRRD - Nearly Raw Raster Data

<img src="http://teem.sourceforge.net/img/nrrd256.jpg" alt="NRRD" width="200"/> > Nrrd is a library and file format designed to support scientific visualization and image processing involving N-dimensional raster data.

Others

SciPy ecosystem

scipy

SciPy (pronounced “Sigh Pie”) is a Python-based ecosystem of open-source software for mathematics, science, and engineering. In particular, these are some of the core packages:

NumPy

numpy

NumPy is the fundamental package for scientific computing with Python.

IPython

ipython

Enhanced Interactive Console

SciPy library

scipylib

The SciPy library is one of the core packages that make up the SciPy stack. It provides many user-friendly and efficient numerical routines such as routines for numerical integration and optimization.

Matplotlib

mpl

Matplotlib is a Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms.

Pandas

pandas

Pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.

Other plotting libraries

Seaborn

Seaborn is a Python data visualization library based on matplotlib. It provides a high-level interface for drawing attractive and informative statistical graphics.

Altair

altair

Altair is a declarative statistical visualization library for Python, based on Vega and Vega-Lite.

Machine learning

TensorFlow

tf

TensorFlow is an open-source machine learning library for research and production.

PyTorch

pytorch

An open source deep learning platform that provides a seamless path from research prototyping to production deployment.

Keras

keras

Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano. It was developed with a focus on enabling fast experimentation.

Scikit-learn

sklearn

Scikit-learn is a free software machine learning library for the Python programming language.

Computer vision / image processing

OpenCV - Open Source Computer Vision Library

opencv

OpenCV (Open Source Computer Vision Library) is released under a BSD license and hence it’s free for both academic and commercial use. It has C++, Python and Java interfaces and supports Windows, Linux, Mac OS, iOS and Android. OpenCV was designed for computational efficiency and with a strong focus on real-time applications.

Pillow

Pillow is the friendly PIL fork by Alex Clark and Contributors. PIL is the Python Imaging Library by Fredrik Lundh and Contributors.

Scikit-image

skimage

Scikit-image is a collection of algorithms for image processing.