[Insight-users] BSplineDeformableTransform parameters?

Luis Ibanez luis.ibanez at kitware.com
Tue Jul 28 07:45:09 EDT 2009


Hi Motes,

The second diagram:


                   O_______xO_________O_________O


was provided as an illustration of what happens on the *right* side of the
image.


You may find useful to look at the following tutorial:

http://www.na-mic.org/Wiki/images/0/06/Insight-DeformableRegistration-BSplines.ppt


It walks you step by step through the process of conception of the
BSpline grid.


    Please let us know if you still have any questions,


        Thanks


               Luis


---------------------------------------------------------------------------------------------------------------
On Sun, Jul 26, 2009 at 9:10 AM, motes motes <mort.motes at gmail.com> wrote:

>
>
> On Wed, Jul 22, 2009 at 6:41 PM, Luis Ibanez <luis.ibanez at kitware.com>wrote:
>
>> Hi Motes,
>>
>> 1) Yes, the parameters of the BSplineDeformableTransform are the
>> components
>>      of the deformation vectors at every node of the BSpline grid.
>>
>> 2) In order to compute a value in the domain of a BSpline of order 3, you
>> need
>>     the values of 4 BSpline nodes.
>
>
>
> As I understand this is the k=4 order B-spline curve with the following
> knot-vector:
>
>
>  0     1     2     3     4     5     6     7
> [0     0     0     0     1     1     1     1]
>                     n    n+1                m
>
> where n+1= 4 control points must be defined to evaluate the curve in the
> whole domain. Actually this is a fourth order bezier curve.
>
>
>
>>
>>
>>     If you think about a point in just on the left border of an image, you
>> will need
>>     one node in the border of the image, another one outside of the image,
>> and
>>     two more inside the image. Imagine that in the diagram below, the "O"
>> symbols
>>     represent BSpline nodes, and the "x" symbol represent the point where
>> you
>>    need to compute a value (for example, a deformation vector).
>>
>>
>>                        O________Ox________O_________O
>>
>>     Now consider the right side of the image domain in the diagram below
>> you
>>     will need two BSpline nodes outside of the image, one in the border
>> and
>>     another one inside of the image.
>>
>>                        O_______xO_________O_________O
>>
>>      Of course, the asymmetry of the choice is arbitrary. We could have
>> chosen
>>      to use two nodes on the left side outside of the image, and one on
>> the right
>>      side, outside of the image.
>>
>>
> I am not sure I understand this. I have tried to make a illustration of how
> I understand your description:
>
> http://img268.imageshack.us/img268/5481/bsplineparameters2.png
>
> But I still don't see why its not possible to evaluate deformation values
> in the leftmost interval in the left case:
>
>                        Ox_new________Ox________O_________O
>
> If that was the case it would only be necessary to define interior control
> points (5*5=25) instead of interior + exterior (5+3 * 5+3 = 64).
>
> And why are two extra nodes required in the right most case:
>
>                        O_______xO_________O_________O
>
> when only one are required in the left most case?
>
>
>
>
>>
>> 3) When we refer to Cubic BSplines, we are talking about the largest order
>> of
>>     the polynomials used for the interpolation.  In this case, = 3.
>>
>>
>>
>>     Regards,
>>
>>
>>            Luis
>>
>>
>>
>> ---------------------------------------------------------------------
>>  On Wed, Jul 22, 2009 at 10:39 AM, motes motes <mort.motes at gmail.com>wrote:
>>
>>>  I am trying to understand the parameters to the
>>> BSplineDeformableTransform in the BSplineWarping1.cxx example.
>>>
>>> 1) As I understand the parameters are actually just a set of deformation
>>> vectors. The location of theses vectors are distributed uniformly over the
>>> image but the orientation and magnitude of the vectors might vary during the
>>> registration.
>>>
>>> 2) When defining the grid extra "vectors" outside the image must be
>>> defined following the below rule from the example:
>>>
>>>
>>> //  Since we are using a B-spline of order 3, the coverage of the BSpling
>>> grid
>>> //  should exceed by one the spatial extent of the image on the lower
>>> region of
>>> //  image indices, and by two grid points on the upper region of image
>>> indices.
>>> //  We choose here to use a $8 \times 8$ B-spline grid, from which only a
>>> $5
>>> //  \times 5$ sub-grid will be covering the input image.
>>>
>>> But why?
>>>
>>> If p=3 is the degree a Cubic B-spline has support over p+1=4 knots.
>>> Assuming that clamped knot-vectors are used the first and second basis
>>> function will only have support over 1 and 2 knots respectively.
>>> The third basis function has full support over the 4 knots.
>>>
>>> Is this why extra control points / deformation vectors are added?
>>>
>>>
>>> Another thing. In the above comments is not meant to say order 4?
>>> Normally the order = degree+1 and as I understand ITK uses cubic B-splines
>>> which is 3-degree.
>>>
>>>
>>> _____________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the ITK FAQ at:
>>> http://www.itk.org/Wiki/ITK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.itk.org/mailman/listinfo/insight-users
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090728/1265a862/attachment.htm>


More information about the Insight-users mailing list