[Insight-users] itkDeformationFieldBendingEnergyFilter

Anja Ende anja.ende at googlemail.com
Wed Dec 18 00:28:11 EST 2013


Hi all,

I am looking at the code for computing the bending energy of a
deformation/displacement field in itk.

The part which computes the bending energy one has the following line:

bending += pqc.GetSquaredNorm() *
      vcl_pow( this->m_HalfDerivativeWeights[i], static_cast<int>(4) );

This computes the squared bending energy term using the second order
derivative of the transformation. One bit I do not understand is the
use of the this->m_HalfDerivativeWeights[i] term. When I look into the
parent class source file, it is defined as:

m_DerivativeWeights[i] =
static_cast< TRealType >( 1.0
/ static_cast< TRealType >( this->GetInput()->GetSpacing()[i] ));
m_HalfDerivativeWeights[i] = 0.5 * m_DerivativeWeights[i];

Now why is the weight set to 0.5 * spacing. Should we not use the
m_DerivativeWeights instead? I am assuming that the second order
derivative is calculated as:

(f(x - h) + f(x + h) - 2 * f(x)) / h^2

Thanks a lot for any help you can give me.

Anja

-- 

Cheers,

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


More information about the Insight-users mailing list