[Insight-users] Parameter scales for registration (second try)

Joël Schaerer joel.schaerer at gmail.com
Mon May 13 05:56:03 EDT 2013


Hi Nick,

What I called the "first scaling" is the application of scales that is 
done before gradient normalization, in the AdvanceOneStep method:

itkRegularStepGradientDescentBaseOptimizer.cxx
187   for ( unsigned int i = 0; i < spaceDimension; i++ )
188     {
189     transformedGradient[i]  = m_Gradient[i] / scales[i];
190     previousTransformedGradient[i] =
191       m_PreviousGradient[i] / scales[i];
192     }

The "second scaling" would be my proposed change, replacing

itkRegularStepGradientDescentOptimizer.cxx
  42   for ( unsigned int j = 0; j < spaceDimension; j++ )
  43     {
  44     newPosition[j] = currentPosition[j] + transformedGradient[j] * 
factor;
  45     }
  46

with

itkRegularStepGradientDescentOptimizer.cxx
  42   for ( unsigned int j = 0; j < spaceDimension; j++ )
  43     {
  44     newPosition[j] = currentPosition[j] + transformedGradient[j] * 
factor  / scales[j];
  45     }
  46

basically a second application of the parameter scales.

I hope this is clearer?

joel

On 07/05/2013 23:22, Nick Tustison wrote:
> Hi Joel,
>
> Also, could you clarify your question a bit?  The snippet of interest in
> the old itkRegularStepGradientOptimizer is
>
>   for(unsigned int j=0; j<spaceDimension; j++)
>     {
>     newPosition[j] = currentPosition[j] + transformedGradient[j] * factor;
>     }
>
> When you write of "first scaling" are you referring to multiplication by
> "factor"?
>
> Nick
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20130513/d0737004/attachment.htm>


More information about the Insight-users mailing list