Abstract
This document describes a new class that takes an \doxygen{Transform} and evaluates the deformation at points in a user-defined region. The class is implemented using the Insight Toolkit url{www.itk.org}. \ This paper is accompanied with the source code, input data, parameters and output data that the authors used for validating the algorithm described in this paper.
Keywords
Source Code and Data
Reviews
Torsten Rohlfing
Tuesday 17 June 2008
Summary:
A class for generating a deformation field based on a parametric coordinate transformation.
Open Science:
Source code and test data are included.
Reproducibility:
The code compiles out of the box with current ITK. Tests provided by the authors run successfully. Did not test withmy own data.
Use of Open Source Software:
Extension to ITK.
Open Source Contributions:
All source code is included and immediately usable.
Code Quality:
The code quality is on par with ITK.
Requests for additional information from authors:
The use of a reference image to define the output field structure is not documented in the paper.
Class member variables (e.g., m_OutputSize) are documented, but not using Doxygen convention.
Additional Comments:
This is a small and straightforward but very useful addition to ITK. It provides, for example, a systematic way to feed parametric transformations into deformable registration algorithms (PDE-type) as initial transformations.
Tom Vercauteren
Thursday 19 June 2008
Summary:
The title is pretty explicit. The author propose a filter that takes a spatial transformation as input and generates a deformation field that reproduces the spatial mapping of the input transformation. This is important for example to initialize a non-parametric registration algorithm with the result of a parametric image registration scheme.
It is great to see that the filter is multi-threaded and uses an optimized path for linear spatial transformations.
The submission is well-written but needs some more work in terms of testing and concept checking.
I would thus recommend that this submission be integrated within ITK provided that the testing be reinforced.
Hypothesis:
The spatial mapping to be mimicked can of course only be represented by a deformation field on a finite region of interest and with a given interpolation grid.
Evidence:
The authors provide some unit tests to check that the filter behaves as it does on their machine. It is already a good thing to have this unit test but I would recommend increasing the testing coverage. Here is a proposed testing procedure.
- Generate some 2D and 3D random scalar images with different sizes/origin/spacing/direction (or use some given input images)
- Generate some random spatial transformations (or use some given input spatial transformations)
- Use a resample filter to warp the scalar images with the spatial transformations
- Generate some deformation fields from the spatial transformations using the contributed filter with different output sizes/origin/spacing/direction with some constraints (e.g. spacing smaller that the scalar image spacing)
- Use a warp filter to warp the scalar images with the generated deformation fields
- Compare the images warped through the spatial transformation with the ones warped through the deformation field
Open Science / Use of Open Source Software / Open Source Contributions:
The contribution fully adheres to those concepts.
Reproducibility:
Compiling and running the tests was straightforward. I would however recommend packaging the files differently to let the automatic testing system do its job.
Code Quality:
The quality of the filter is up to ITK's standards. I would however add some concept checking to it, such as:
itkStaticConstMacro(PixelDimension, unsigned int,
OutputPixelType::Dimension );
#ifdef ITK_USE_CONCEPT_CHECKING
/** Begin concept checking */
itkConceptMacro(SameDimensionCheck,
(Concept::SameDimension));
/** End concept checking */
#endif
The testing code should however be better documented.
Suggestions for future work:
- Improve the unit tests
- Add some concept checking
- Add a link to http://hdl.handle.net/1926/510 that already provided a filter doing the same thing but without the cool features presented here (multi-threading, linear transformation optimization, unit testing)
- Add some documentation such as "This source object expects the image to be of pixel type Vector."
