ITK/Roadmap 2005 2006
ITK Roadmap
The future developement of ITK relies heavily on feedback from the community of users and developers as well as guidelines from the clinical and medical research community.
This page is intended to gather feedback regarding the future direction of ITK and in particular to list specific features and functionalities that would make the toolkit more useful for the medical imaging community.
Features and Functionalities
Software Engineering
Explicit Instantiations
This will improve compile time and will reduce the size of libraries and binaries
Typeless layer
A C++ typeless layer will provide users with a toolkit where the pixel type and dimension of the image do not have to be decided in advance. This layer will look very close to what VTK uses for representing images and imaging filters.
Adopting Dart2
Dart2 will bring a large number of interesting features that will improve the quality control system for ITK. We should plan the transition from Dart to Dart2 in a progressive and organized way.
Increasing Code Coverage
Code coverage is low for a significan number of files. It is usually correlated with the less used classes in the toolkit
Add support to CTest for reducing redundant tests
CTest could provide coverage of classes per test in order to determine if a particular class is being covered in multiple tests. From this analysis, developers could remove redundant testing in the toolkit.
Explore other tools for code coverage in CTest
Currently we use gcov but this tool have some limitations. It will be desirable to have an alternative way of measuring code coverage.
CTest will have to parse the output of these alternative tools and format it according to what Dart/Dart2 expects as input.
Potential Candidates
- Valgrind
- Visual Studio
- http://c2.com/cgi/wiki?CodeCoverageTools
- http://www.testing.com/writings/coverage-terminology.html
Increasing Valgrind/Purify Testing
Testing for run-time problems has received reduced attention. As ITK move more and more into applications, we should pay closer attention to the run-time correctness of the code. We should setup more machines for running Valgrind/Purify testing
Since these builds take longer, we could take advantage here of Dart2 new alternative periodicity. For example, run these tests on a weekly or montly basis and then enter in sessions for cleaning up the code.
Add support to CTest for runtime profiling
Improving run-timeperformance of ITK algorithem requires to analyze the amount of time that each piece of code take for execution.
Potential candidate tools
- Visual Studio
- gprof
- Valgrind/Calltree
Deprecation Policy
Factorizing IO Classes with VTK
The ITK IO classes in ITK are very similar to the VTK ones. In many cases they were simply copy/pasted from VTK
ITK Complete
Package a release of ITK that contains
- Insight
- InsightApplications
- VTK
- FLTK
Along with a commong CMakeLists.txt file that will allow to configure the entire package with consistent options and minimal effort.
- These distribution will factorize common resources such as KWSYS/PNG/JPEG/TIFF/expat/gdcm/
Image Modalities
A variety of image modalities are now well supported in ITK at this point. New image modalities may become important for the medical research community and later on for the clinical users. This section list the upcoming image modalities, their relevance and what would it take to support them in ITK. Note that the categories are not independent and that some of them will overlap.
Color Images
Basic support exists now in ITK for dealing with RGB images. A reduced number of filters and segmenation techniques are ready-to-use in the toolkit. No support for registration of color images is currently available. Although several users have explored this domains, have written ITK classes for it and are willing to contribute their code to the toolkit.
The challenges are
- Color model conversion (HSV, RGB)
- Image IO
- Segmentation
- Statistical classifications
- Region growing
- Levelsets
Multi-Spectral Images
4D Images (time series)
Tensor Images
Microscopy Images
The specific features of microscopy images are
- 2D images
- Large images (1K x 1K) up to (4K to 4K)
- Mosaics
- Need for annotations
- Movement and tracking of particles
- Multi-spectral images
- Polarization
- File formats (the microscopy community uses a large set of fileformats)
Confocal Microscopy Images
The specific features of Confocal Microscopy images are
- 3D images
- Strong anisotropy (Z spacing >> X,Y spacing)
- Attenuation in Z
- Large images
- Multi-spectral images
- Need for registration
- 3D Mosaics
- File formats (the microscopy community uses a large set of fileformats)
Transmision Electron Microscopy
The specific features of Transmission Electron Microscopy images are
- 3D images
- Small signal to noise ratio
- Large images
- Need for model based segmentation techniques
Endoscopic Images
The specific features of Endoscopic Microscopy images are
- Video images
- Color
- Reflections in tissue
- Continues movement
- Shape from shading
Endoscopic images are more on the domain of computer vision but they are quite important in clinical applications.