[ITK Community] [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://public.kitware.com/pipermail/community/attachments/20131218/b60aa7b9/attachment.html>
-------------- next part --------------
_____________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.php

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


More information about the Community mailing list