NifTK
16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
|
There are several ways to contribute. These are listed below in increasing order of complexity.
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.
NifTK has many command line applications. These can be connected together using bash or python scripting.
NifTK/Scriptsunder a suitably named folder.
NifTK/Scripts/CMakeLists.txt
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.
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.
NifTK/Libraries/ITKunder a suitably named folder.
NifTK/Libraries/ITK/CMakeLists.txt
NifTK/Applications
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.
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.
NifTK/Libraries
NifTK/MITK/Modules
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.