[ITK-users] SplineOrder, control points and MeshSize of Bspline registration

Maxime Toussaint neocerber at gmail.com
Thu Oct 8 10:36:51 EDT 2015


Hi,

I have worked with ITK's BSpline registration methods in my master degree.
So, I think I can shed some light on your questions. However, my knowledge
comes from a mash up of ITK's guide book and signal processing courses, so
take it with a grain of salt. 

English being my second language, I beg indulgence for possible weird
sentences!

1)
Your conclusion on the Spline Order is wrong. The "2" is the consequence of
how ITK want to use B-Spline has a deformation transformation basis. If you
read on B-Splines, you should find that B-Splines refer to a family of
function that are defined recursively from the B-Spline of order 0, which is
a window function.   

It is true that "GridNode = 5x5x5" in this example. However, you didn't
state its definition, so I can't say if your interpretation of this
parameter, set by the user, is correct. In its simplest form, you can say
that this parameter is a choice between the capacity to defines local
deformation and its computational complexity for the registration solver.  

Your formula for the mesh size is right. The reason behind this formula is
to create a (SplineOrder or (SplineOrder - 1), I don't remember ) times
continuous function that approximate the voxel displacement. All voxels
outside the grid size are not deformed because the grid size define the part
of the image we want to deform. However, I don't have, out of my hat, a
reference material that only explains why this is the case in ITK. You would
need to read on the necessary conditions to create a B-Spline approximation
of a function and narrow it to uniform B-Spline of single multiplicity to
understand. 

2) 
I don`t think so. Proof by example : Let's suppose that you have a one
dimension image of 10 voxels and a mesh size of 3. With your formula, the
step size would be (10 - 0)/ 3 = 10/3... This would mean that with a mesh
starting at voxel 0, you would have a mesh at 0, 10/3, 20/3 and 10, which
contradict your mesh size. Thus, the formula you want is "distance between
first and last pixels of Mesh divided by MeshSize ". As you might have
guessed, the spacing in each dimension might vary.

Have a nice day,
Maxime Toussaint




--
View this message in context: http://itk-insight-users.2283740.n2.nabble.com/SplineOrder-control-points-and-MeshSize-of-Bspline-registration-tp7587998p7588006.html
Sent from the ITK Insight Users mailing list archive at Nabble.com.


More information about the Insight-users mailing list