Proposals:Decoupling ImageMetric from BSplineDeformableTransform: Difference between revisions
From KitwarePublic
Jump to navigationJump to search
(New page: __TOC__ = The Problem == * The ImageToImageMetric knows too much ** It is aware of the *** BSplineDeformableTransform *** BSplineIntepolateImageFunction ** It performs dynamic_casting ...) |
No edit summary |
||
Line 1: | Line 1: | ||
__TOC__ | __TOC__ | ||
= The Problem | = The Problem = | ||
* The ImageToImageMetric knows too much | * The ImageToImageMetric knows too much |
Latest revision as of 18:33, 28 December 2007
The Problem
- The ImageToImageMetric knows too much
- It is aware of the
- BSplineDeformableTransform
- BSplineIntepolateImageFunction
- It performs dynamic_casting to discover the type of the Transform and Interpolator
- It caches several arrays for the BSplineDeformableTransform
- The caching has the following problems
- It is not optional (can't be turned off)
- It is memory consuming (about 3 Gigabytes)
- It break class encapsulation
- The caching has the following problems
- It is aware of the
The Proposed Solution
- Add a TransformCacher class
- A default cacher will not do anything
- A cacher for the BSplineDeformableTransform will take over the code that is currently in the ImageToImageMetric
- More sophisticated cachers could be added
- The Transform class will use the default cacher
- The Metric will
- request the Transform for its cacher (at run time)
- use the cacher for passing a list of points to be mapped, and then map one by one using an index