[Insight-users] BSplineDeformable support region?
motes motes
mort.motes at gmail.com
Sun Nov 1 17:21:35 EST 2009
I am trying to understand how the support region is computed when
using the itkBSplineDeformableTransform.
Assuming that the splineOrder=3 a region of 4*4 nodes should
contribute in the interpolation.
When I look at (itkBSplineInterpolationWeightFunction.txx) the
contributing nodes are determined like this:
// Find the starting index of the support region
for ( j = 0; j < SpaceDimension; j++ )
{
startIndex[j] = static_cast<typename IndexType::IndexValueType>(
BSplineFloor( index[j] - static_cast<double>( SplineOrder - 1 ) / 2.0 ) );
}
// Compute the weights
Matrix<double,SpaceDimension,SplineOrder + 1> weights1D;
for ( j = 0; j < SpaceDimension; j++ )
{
double x = index[j] - static_cast<double>( startIndex[j] );
for( k = 0; k <= SplineOrder; k++ )
{
weights1D[j][k] = m_Kernel->Evaluate( x );
x -= 1.0;
}
}
But does that not result in support region looking like this:
http://37133.vs.webtropia.com/apache2-default/test/support_region.jpg
But should the region not be:
http://37133.vs.webtropia.com/apache2-default/test/correct.jpg
where vector to be interpolated is located at the center of the 4*4
grid an not in the bottom left corner?
More information about the Insight-users
mailing list