[Insight-users] Centered Affine Transform

Luis Ibanez luis.ibanez at kitware.com
Fri Jul 16 19:06:08 EDT 2004


Hi Lucas,


What center of rotation did you selected ?

  Luis


---------------------
Lucas Lorenzo wrote:

> Hi Luis,
> 
> I've been running some tests so as to understand a little bit better 
> what's this transform doing and it is clear to me now that it is 
> applying the translation first and then it is rotating the translated 
> image with respect to the specified center of rotation.
> My understanding is that it should perform these operations but in 
> reverse order.
> Please let me know if this is wrong.
> Thanks,
> 
> Lucas
> 
> On Jul 16, 2004, at 2:14 PM, Lucas Lorenzo wrote:
> 
>> Hi Luis,
>>
>> thanks for your feedback.
>>
>> 1) Till now the way I was setting the parameters was using the 
>> m_Transform->SetParameters(m_TransformParameters);
>>
>> 2) I have a 2D image so my understanding is that I'm going to have 8 
>> parameters for this transformation where the first 4 parameters define 
>> the rotation, shear, and scaling; the next two define the center of 
>> rotation and the last two define the translation to be applied with 
>> respect to the center of rotation (after the image has been rotated).
>>
>> Please, let me know where am I making a mistake.
>>
>> Thanks,
>>
>> Lucas
>>
>>
>> On Jul 16, 2004, at 1:17 PM, Luis Ibanez wrote:
>>
>>>
>>> Hi Lucas,
>>>
>>> It is likely that you are misinterpreting
>>> the encoding of the parameters in this
>>> transform.
>>>
>>> Please post the values of the parameters
>>> that you are providing, and post also
>>> what you are expecting to be the effect.
>>>
>>> Note that you have:
>>>
>>>     - Center of rotation
>>>     - Translation
>>>     - Offset
>>>     - Rotation matrix
>>>
>>>
>>> When you use this transform you should only
>>> care about SetCenter(), SetTranlation() and
>>> Rotation. Never touch the Offset directly.
>>>
>>>
>>> A code snippet illustrating the calls that
>>> you are making on the transform will also
>>> be very useful....
>>>
>>>
>>>  Thanks
>>>
>>>
>>>    Luis
>>>
>>>
>>> ----------------------
>>> Lucas Lorenzo wrote:
>>>
>>>> Hi Gavin,
>>>> thanks a lot for your answer.
>>>> I'm setting the parameters using
>>>>     m_Transform->SetParameters(m_TransformParameters);
>>>> So, afterwards I'm adding
>>>>     m_Transform->ComputeOffset();
>>>> But still the results are not as expected (after rotation the object 
>>>> is  not been translated to the desired location). Is there anything 
>>>> wrong  in what I'm doing ?
>>>> Thanks,
>>>> Lucas
>>>> On Jul 15, 2004, at 10:07 PM, Gavin Baker wrote:
>>>>
>>>>>
>>>>> Hi Lucas,
>>>>>
>>>>> On Thu, Jul 15, 2004 at 06:01:26PM -0600, Lucas Lorenzo wrote:
>>>>>
>>>>>> I'm trying to use a Centered Affine Transform. So first I'm taking a
>>>>>> look at the following example:
>>>>>>
>>>>>> Examples/Registration/ImageRegistration9.cxx.
>>>>>>
>>>>>> I'm a little bit confused on how to use the ComputeOffset() method
>>>>>> because I don't see where it is been used in this example and when
>>>>>> reading the online documentation my understanding is that it is
>>>>>> mandatory to use this particular method.
>>>>>>
>>>>>> Could anyone please help me to get a better understanding on this  
>>>>>> issue
>>>>>> ?
>>>>>
>>>>>
>>>>>
>>>>> When using the centered affine transform, there is an implicit  
>>>>> translation
>>>>> due to the center.  The offset takes into account the affect of any
>>>>> rotations you specify on this center, to give a new translation.  The
>>>>> ComputeOffset() method recalcuates this offset (which need only be 
>>>>> done
>>>>> once), and needs to be updated before applying the transform.
>>>>>
>>>>> This was discussed a while ago:
>>>>>
>>>>>    http://public.kitware.com/pipermail/insight-users/2003-October/ 
>>>>> 005230.html
>>>>>    http://public.kitware.com/pipermail/insight-users/2003-October/ 
>>>>> 005272.html
>>>>>
>>>>>> From the comments at the top of ImageRegistration9.cxx (from the  
>>>>>> Software
>>>>>
>>>>>
>>>>> Guide) show:
>>>>>
>>>>>   //                      Note that the final total offset of the  
>>>>> transform
>>>>>   //  is to be computed as a combination of the shift due rotation  
>>>>> plus the
>>>>>   //  explicit translation set on the transform.
>>>>>   //
>>>>>
>>>>> General usage would be:
>>>>>
>>>>>   xform->Translate( delta );
>>>>>   xform->Rotate( theta );
>>>>>   // ...
>>>>>   xform->ComputeOffset();
>>>>>
>>>>>   resample->Update();
>>>>>
>>>>>
>>>>> ComputeOffset() is actually called explicitly in all the
>>>>> CenteredAffineTransform methods that affect the transform, but  
>>>>> (obviously)
>>>>> not any AffineTransform methods.  It isn't called automagically 
>>>>> (after  each
>>>>> change) since it only needs to be done once, although it probably  
>>>>> wouldn't
>>>>> hurt if it were.
>>>>>
>>>>>   :: Gavin
>>>>>
>>>>> -- 
>>>>> Gavin Baker                                      Complex Systems Group
>>>>> http://www.cs.mu.oz.au/~gavinb             The University of Melbourne
>>>>> _______________________________________________
>>>>> Insight-users mailing list
>>>>> Insight-users at itk.org
>>>>> http://www.itk.org/mailman/listinfo/insight-users
>>>>>
>>>> Lucas Lorenzo
>>>> University of Utah
>>>> Nora Eccles Harrison CardioVascular Research and Training Institute
>>>> Fellows Room
>>>> 95 South 2000 East
>>>> Salt Lake City, UT 84112-5000
>>>> e-mail:  lucas at cvrti.utah.edu
>>>> telephone: 801-587-9536
>>>> _______________________________________________
>>>> Insight-users mailing list
>>>> Insight-users at itk.org
>>>> http://www.itk.org/mailman/listinfo/insight-users
>>>
>>>
>>>
>>>
>>>
>> Lucas Lorenzo
>>
>> University of Utah
>> Nora Eccles Harrison CardioVascular Research and Training Institute
>> Fellows Room
>> 95 South 2000 East
>> Salt Lake City, UT 84112-5000
>>
>> e-mail:  lucas at cvrti.utah.edu
>> telephone: 801-587-9536
>>
>>
> Lucas Lorenzo
> 
> University of Utah
> Nora Eccles Harrison CardioVascular Research and Training Institute
> Fellows Room
> 95 South 2000 East
> Salt Lake City, UT 84112-5000
> 
> e-mail:  lucas at cvrti.utah.edu
> telephone: 801-587-9536
> 
> 





More information about the Insight-users mailing list