NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
How To - Contribute to The Platform

There are several ways to contribute. These are listed below in increasing order of complexity.

Use the platform and provide feedback

The first suggestion is to simply use NifTK and especially NiftyView. The NifTK project has daily, weekly and monthly builds. The monthly builds are for general use, and so it is important to make sure these work well. Other builds are for development and testing purposes. In addition to nightly unit testing, the only way to make sure NiftyView is genuinely useful is to have lots of users feedback, so this is one of the most important things people can do.

The location of these pre-built packages is listed on the wiki.

Combine algorithms together in a pipeline

NifTK has many command line applications. These can be connected together using bash or python scripting.

We currently have scripts for registration, segmentation, TBSS, FreeSurfer, Voxel Based Cortical Thickness Estimation and so on. Speak to Matt, or Kelvin for examples to suit your needs.

The NiftyView 2012 roadmap includes the integration of the Slicer Execution Model to enable command line applications and scripts to be run from within NiftyView. This will enable quicker integration of command line programs into the GUI. So the combination of scripted pipelines and command line applications running ITK filters is a simple and effective entry point to NifTK development.

Write a new world changing algorithm as an ITK filter

Writing an ITK filter is easy if you know C++. Please refer to the ITK Software Guide for an introduction. In addition, the UCL MSc module Information Processing in Medical Imaging course has a workshop on writing ITK filters, and ITK itself and the NifTK toolit have many real examples. You can simply integrate your new medical image processing algorithm by writing a command line program and calling ITK filters directly. The use of ITK provides a standard architecture for things like multi-threaded processing, and coping with n-dimensional images of arbitrary datatypes.

Don't forget to write effective command line argument parsing and also documentation in the top of your application file. Look in niftkAdd for an example.

Develop a new GUI plugin

Writing a GUI plugin is still quite easy and the number of examples and documentation at MITK and for NifTK is growing all the time.

Building the GUI will often require some iteration, as different users discover different usability features and suggestions. You should follow the more detailed instructions here, and work collaboratively to achieve an effective plugin.