Thursday, June 9, 2011

Comparison of Medical Image Processing Toolkits and Software


Comparison of Medical Image Processing Toolkits and Software
Murray Meehan, June 9 2011

Goal:
Identify the most widely used medical image processing (MIP) toolkits/libraries/software in the MIP research and industry communities. I want some practice using them, whatever they are, and hope to get a job developing them some day.

Conclusion: 
I had hoped to find one set of tools that most of industry and academia had agreed on, that I could use at most companies worldwide. Unfortunately, as Dr. Basran said in his guest lecture this morning, the tools for medical imaging are in their infancy. Medical imaging is older than the internet, but the commercial developers haven't collaborated much so it's up to universities and open source development. You know how it goes.

I hope the MITK project takes off in a big way. It looks like a nice tool to use, and I think it would be fun to develop it. It might be too early in its development for me to get permission to use it for an academic term project this semester though. After the page break are the results of my search, a breakdown of Medical Imaging tools which seemed relevant.

Note: 
Unless otherwise noted, all software is multi-platform, C++ centric, and open source, as most available software appears to be.
Tools I was already familiar with:
  •  OpenCV
  •  (Open Source Computer Vision) is a library of programming functions for real time computer vision.: http://opencv.willowgarage.com/wiki/L
  •  ibrary recommended for projects in my medical image processing class, Elec 435 @ the University of Victoria, taught by Dr. Albu.
  •  Sister project of PCL
  •  PCL  Point Cloud Library
  •  a large scale, open project for point cloud processing. : http://pointclouds.org[
  •  contains numerous state-of-the art algorithms including filtering, feature estimation, surface reconstruction, registration, model fitting and segmentation.
  •  Sister project of OpenCV
  •  I studied it briefly last month when picking tools for my term project in Elec 486 (wavelet/multirate signal/geometric processing) before being advised to use CGAL+OpenGL
  •  Has been used by others for Kinect projects when using OpenNI
  •  CGAL (Computational Geometry Algorithms Library)
    •  Geometry processing library
    •  goal: provide easy access to efficient and reliable geometric algorithms in the form of a C++ library.
  • OpenNI
    •  framework + API for writing NI apps
    •  an industry-led, not-for-profit organization formed to certify and promote the compatibility and interoperability of Natural Interaction (NI) devices, applications and middleware. : http://www.openni.org/documentation
    •  Other software known to work with it: Kinect, PCL (OpenCV?)
  •  VIPERS
    •  Dr. Albu’s graphical image processing toolbox program
    •  Not publicly released yet. I’ve volunteered as a beta tester!
  • ImageJ
    •  Used for textbook exercises in my Elec 435 Medical Image Processing class, from Geoff Dougherty’s book “Digital Image Processing for Medical Applications” taught by Dr. Albu
    •  Java based image processing and analysis tool
    •  Also a toolkit for writing applets, servlets, and apps  
Software described by Ivo Wolf (MITK member & author of the first 2 items in the Books section) in a chapter of Biomedical Image Processing By Thomas M. Deserno :
  •  Development Libraries/Toolkits:
  •  NA-MIC Kit www.na-mic.org
    •  C++ open source collection, mainly C++ with wrappers for TCL,Python,Java
    •  Includes:
      •  ITK (see below)
      •  3D Slicer (extensible software package for visualization and medical image computinrg,
      •  other tools: KWWidgets (GUI class), automatic QA testing, misc. software engineering tools
  • ITK (Insight Segmentation and Registration Toolkit) http://www.itk.org 
    •  “ITK is probably the most widely used toolkit in medical image processing”
    •   C++ open source collection, mainly C++ with wrappers for TCL,Python,Java
    •  Does not include: methods for image display, a development environment, or an end-user application for exploring implemented algorithms.
    •  Manual: The ITK Software Guide, free on http://www.itk.org
  •  VTK (The Visualization Toolkit) http://www.vtk.org
    • is for visualization what ITK is for image processing algorithms: one of the most popular toolkits in its area
    • provides a large # of algorithms for 3d graphics (modeling, methods) and image processing
    •  C++ open source collection, mainly C++ with wrappers for TCL,Python,Java
    •  Does not include: Development Environment or end-user application
    •  Front-Ends: ParaView
    •  ITK+VTK Development Environments: OpenXIP, DeVIDE, MeMisLab
    •  Open Inventor http://oss.sgi.com/projects/inventor/
    •  TK for development of interactive medical image processing software
    •  uses and supplements ITK, VTK
    •  Featured in many academic papers, but is it used at all in industry?
  •  Grassroots DICOM library
    • DICOM image reading/parsing/writing library, compatible with ITK/VTK
  •  3D Slicer
    • package for visualization + image analysis
Papers:
Medical Imaging companies in BC (where I live): (source: Candian gov’t)
  •  Angiotech Pharmaceuticals
  •  McKesson Canada
  •  Medical Ventures
  •  Response Biomedical
  •  Sulzer Mitroflow Corp
  •  Centre of Excellence for Surgical Education and Innovation (Research Center)    

1 comment: