The wish list is provided by members of the ITK development community. These requests are not necessarily included in the NLM-funded ITKv4 and ITKv4 A2D2 contracts.

Oriented Images

Image Representation

Statistics

FEM Meshes

Backward compatibility and cleanup

Image Registration

Composite Transform

Architecture and Software engineering

Can you explain a bit more?

Internationalization

Proper resampling/consistency in IndexToPhysicalPoint, ContinuousIndexToPhysicalPoint, Point*

Deformable Organisms

Make as much filters as possible able to run in place

In place computation is a great way to avoid running out of memory when updating a pipeline. We should review all the existing filters to find the filters which could be implemented that way, and use InPlaceImageFilter has their base class. Also, a global setting to control the default in place/not in place behavior would be great.

Make the boundary conditions usage consistent across the toolkit

At the moment, some filters let the user provide a boundary condition, some don't but use one internally, and some just don't use them at all. This should be consistent in the toolkit, and if it make sense, it should be changeable by the user. Boundary conditions also make some filters hard to enhance with much more efficient algorithms - see BoxMeanImageFilter for an example.

Replace the current implementation of Marching Cubes and add a 4D version

The itkBinaryMask3DMeshSource filter currently provides the closest functionality to the Marching Cubes algorithm in ITK. However the code of this filter has to be rewritten in order to match the quality standards of the rest of the toolkit. As part of this rewrite we should provide implementations for 2D (marching squares), 3D marching cubes and a 4D version that could be used for segmenting 3D+time datasets.

Normalize the Binary/Label/Grayscale usage in code and in the class names

Proposals:Consistent_usage_of_label_and_binary_images

Use an image template parameter in the complex related filters

Arbitrary precision type

for reconstruction and geometry processing, you might want to use arbitrary precision type. Boost has one, GMP is now LGPL. That also could be a feature of the numerical library, and then the solvers could directly use this, if needed.

inspired from exct and filtered kernels in CGAL

Exact geometrical test (point in circle => delaunay

If we cannot go for arbitrary precision types, in some case it is sufficient to support some operations to have exact geometrical predicates. This is mandatory for a robust delaunay implementation. The implementation for the point-in-circle predicate which is necessary and sufficient for exact 2D delaunay, is public domain.

Note that abitrary precision would allow for any exact geometrical predicates.

3rd Party Libraries

Coding Style

Wavelets Framework

Label map writer

DICOM

Writing DICOM files should be much easier. Two modes should be available:

  1. For basic user the DICOM image writer should write out simple DICOM file (Secondary Capture IOD's objects). This makes thoses DICOM file the exact equivalent of PNG or TIFF representation.
  2. For advanced users: There should be a way for passing information from -say- the input DICOM files to the output DICOM files. Filters should be added to manipulate those meta data. Typical examples includes:
    • a derivation filter which add "DERIVED" and setup the Derivation Description, Source Image Sequence & Derivation Code Sequence
    • a lossy generator that mark that image was degraded for professional interpretation and thus tags should be updated (Lossy Image Compression & Lossy Image Compression Ratio)
    • changing of SOP Class should be allowed, for instance input is CT Image, but Segmentation Storage is needed for output (Registration Storage...)

For the advanced user, it will be possible to write out other class than just the Secondary Capture one, since there will be a way to specify which SOP Class to use for the output DICOM files.

Support clang compiler