[Insight-users] Transform

Luis Ibanez luis.ibanez at kitware.com
Fri Aug 13 14:21:20 EDT 2004


Hi Pandu,

Please read the Doxygen documentation for this class
http://www.itk.org/Insight/Doxygen/html/classitk_1_1ScaleSkewVersor3DTransform.html

The number of paramters is specified in the documentation
of the GetParameters() method.
http://www.itk.org/Insight/Doxygen/html/classitk_1_1ScaleSkewVersor3DTransform.html#z1326_1


The dimension of the array of scaling parameters must
match the numbe of paramters in the Transform.


You can simply call the method:

      transform->GetNumberOfParameters()

The GradientDescent optimizer is a reasonable choice here.

However notice that the choice of the optimizer depends
more on the characteristics of the ImageMetric than on the
characteristics of the Transform.


Regards,


    Luis


-------------------
Pandu Jugnu wrote:

> Hi Luis,
> 
> As per you recommendation I am using
> ScaleSkewVersor3DTransform. I had few questions about
> it. How many parameters does it support? 9 or 12?
> Also, while setting up the optimier using the
> following code:
> 
> typename OptimizerType::ScalesType scales( 
>   m_Transform->GetNumberOfParameters() );
>   scales.Fill( 1.0);
>   
>  for ( int j = 4; j < 7; j++ ) 
>     {
>     scales[j] = m_TranslationScale;
>     }
> 
> I am a bit confused if i have to change the "for" loop
> to run from 6 to 9 or 9 to 12.
> 
> I am using the GradientDescentOptimizer along with
> this transform. Is this is a good choice.
> 
> Thanks Luis
> Pandu 
> 
> 
> 
> --- Luis Ibanez <luis.ibanez at kitware.com> wrote:
> 
> 
>>Hi Pandu,
>>
>>In that case you may want to use the
>>ScaleSkewVersor3DTransform
>>
>>
> 
> http://www.itk.org/Insight/Doxygen/html/classitk_1_1ScaleSkewVersor3DTransform.html
> 
>>
>>This transform supports the combination of rigid and
>>scaling transforms.
>>
>>
>>Regards,
>>
>>
>>    Luis
>>
>>
>>-----------------------------------------------
>>Pandu Jugnu wrote:
>>
>>
>>>Hi Luis,
>>>
>>>Thanks for your last email. It really helped clear
>>
>>my
>>
>>>doubts. I have one more question. 
>>>I am trying to incorporate ScaleTransform along
>>
>>with
>>
>>>the QuaternionRigidTransform in
>>
>>MultiResMIRegistration
>>
>>>application so that I can take care of the scaling
>>
>>in
>>
>>>addition to tranlation and rotation. 
>>>I went over the Doxygen files for ScaleTransform.
>>
>>But
>>
>>>I am not sure how to implement it along with
>>>QuaternionRigidTransform in the application.
>>>
>>>Can you guide me as how to accomplish this?
>>>
>>>I appreciate your help Luis.
>>>Thanks
>>>Pandu
>>>--- Luis Ibanez <luis.ibanez at kitware.com> wrote:
>>>
>>>
>>>
>>>>Hi Pandu,
>>>>
>>>>This MultiResMIRegistration application uses a
>>>>
>>>>         QuaternionRigidTransform
>>>>
>>>>for performing the registration. The presence of
>>>>the AffineTransform is required for converting
>>>>the QuaternionRigidTransform into an Affine
>>>>transform and returning it for being used
>>
>>elsewhere.
>>
>>>>An Affine transform can represent a rigid
>>
>>transform
>>
>>>>without any lose of precision. In practice you can
>>>>use the Affine transform as a 'generic' transform
>>>>that can internally represt
>>>>
>>>>    - Rotation transforms
>>>>    - Scaling transforms
>>>>    - Translation transforms
>>>>    - Rigid transforms
>>>>    - Similarity transforms
>>>>    - Shearing transforms
>>>>    - Reflection transforms
>>>>
>>>>In this way, no matter which one of the above
>>>>transforms
>>>>in actually used for performing the registration,
>>>>you could
>>>>always return the results represented in an Affine
>>>>transform.
>>>>
>>>>
>>>>No reason to worry,
>>>>Just continue enjoying your reading of the code.
>>>>
>>>>
>>>>Please let us know if you have further questions.
>>>>
>>>>
>>>>
>>>>  Thanks
>>>>
>>>>
>>>>    Luis
>>>>
>>>>
>>>>-----------------------
>>>>Pandu Jugnu wrote:
>>>>
>>>>
>>>>
>>>>>Hi Luis
>>>>>
>>>>>I was going over the code for
>>>>
>>>>MultiResMIRegistration
>>>>
>>>>
>>>>>application. I read in the guide that this
>>>>
>>>>application
>>>>
>>>>
>>>>>uses "QuaternionRigidTransform" but I noticed the
>>>>>presence of "Affine Transform" in the code too. 
>>>>>Can you put some light on this as of why are we
>>>>
>>>>using
>>>>
>>>>
>>>>>the Affine transform in this example.
>>>>>
>>>>>Thanks in advance.
>>>>>Pandu
>>>>>
>>>>>
>>>>>		
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>		
>>>_______________________________
>>>Do you Yahoo!?
>>>Express yourself with Y! Messenger! Free. Download
>>
>>now. 
>>
>>>http://messenger.yahoo.com
>>>_______________________________________________
>>>Insight-users mailing list
>>>Insight-users at itk.org
>>>http://www.itk.org/mailman/listinfo/insight-users
>>>
>>
>>
>>
>>
>>
> 
> 
> 
> 	
> 		
> __________________________________
> Do you Yahoo!?
> New and Improved Yahoo! Mail - 100MB free storage!
> http://promotions.yahoo.com/new_mail 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
> 






More information about the Insight-users mailing list