[ITK-dev] BSpline transform IO and spline order problems

Lowekamp, Bradley (NIH/NLM/LHC) [C] blowekamp at mail.nih.gov
Mon Oct 31 10:41:00 EDT 2016


Hello,

I recently discovered that the BSpline transforms are not serializing the order of the spline. The ITK BSplineTransform class[1] is templated over the dimension and the bspline ORDER not the output dimension (like nearly every other transform).

Currently the following strings are in the Transform factory and in ITK transform files:

"BSplineTransform_double_2_2"
“BSplineTransform_double_3_3"

"BSplineTransform_float_2_2"
“BSplineTransform_float_3_3"


The 3D one correctly get loaded as a order 3 spline but the 2D BSplineTransform get loaded with order 2!!!

I believe this a a bug, as the default template parameter for the order is 3, and that is the order almost always used.


I have a patch here to address these issue[2].


So the questions for discussions:

1) Should we correct the behavior and have the string: “BSplineTransform_double_2_2” create a BSplineTransform<2,Order=3> now?
2) Should be keep writing these strings for order 3 splines? Order just use the new string with the addition of order? i.e. “BSplineTransform_double_2_2_3"


Brad

[1] https://itk.org/Doxygen/html/classitk_1_1BSplineTransform.html
[2] http://review.source.kitware.com/#/c/21677/


More information about the Insight-developers mailing list