[Insight-users] RE: need an example of BSpline parameter file

Lydia Ng lydiang at gmail.com
Fri Jul 29 13:31:53 EDT 2005


Suppose that you are dealing with 2D and 8x8 grid as in the example.
Let x's be the x-displacement BSpline coefficient of the grid in
raster-ordering and y's be the y-displacement Bspline coefficient of
the grid in raster-ordering. Then the parameters as a flat array of
double is

[x0,x1, x2,...,x63,y0,y1,...,y63]

HTH,
Lydia

On 7/21/05, mrcheung at mdanderson.org <mrcheung at mdanderson.org> wrote:
> Hi,
> 
> Below is a segment of code from itk BSplineWarp1.cxx. Can anyone provide me
> with an example of the format of a parameter file that could be fed into
> bsplineTransform->SetParameters( parameters );
> 
> Thanks a lot, Rex
> 
> // Software Guide : BeginCodeSnippet
>  typedef TransformType::RegionType RegionType;
>  RegionType bsplineRegion;
>  RegionType::SizeType   size;
> 
>  const unsigned int numberOfGridNodesOutsideTheImageSupport = 3;
> 
>  const unsigned int numberOfGridNodesInsideTheImageSupport = 5;
> 
>  const unsigned int numberOfGridNodes =
>                        numberOfGridNodesInsideTheImageSupport +
>                        numberOfGridNodesOutsideTheImageSupport;
> 
>  const unsigned int numberOfGridCells =
>                        numberOfGridNodesInsideTheImageSupport - 1;
> 
>  size.Fill( numberOfGridNodes );
>  bsplineRegion.SetSize( size );
> 
>  typedef TransformType::SpacingType SpacingType;
>  SpacingType spacing;
>  spacing[0] = floor( fixedSpacing[0] * (fixedSize[0] - 1) /
> numberOfGridCells );
>  spacing[1] = floor( fixedSpacing[1] * (fixedSize[1] - 1) /
> numberOfGridCells );
> 
>  typedef TransformType::OriginType OriginType;
>  OriginType origin;
>  origin[0] = fixedOrigin[0] - spacing[0];
>  origin[1] = fixedOrigin[1] - spacing[1];
> 
>  bsplineTransform->SetGridSpacing( spacing );
>  bsplineTransform->SetGridOrigin( origin );
>  bsplineTransform->SetGridRegion( bsplineRegion );
> 
> 
>  typedef TransformType::ParametersType     ParametersType;
> 
>  const unsigned int numberOfParameters =
>               bsplineTransform->GetNumberOfParameters();
> 
> 
>  const unsigned int numberOfNodes = numberOfParameters / SpaceDimension;
> 
>  ParametersType parameters( numberOfParameters );
> //  Software Guide : EndCodeSnippet
> 
> 
> 
> 
> //  Software Guide : BeginLatex
> //
> //  The BSpline grid should now be fed with coeficients at each node. Since
> //  this is a two dimensional grid, each node should receive two
> coefficients.
> //  Each coefficient pair is representing a displacement vector at this
> node.
> //  The coefficients can be passed to the BSpline in the form of an array
> where
> //  the first set of elements are the first component of the displacements
> for
> //  all the nodes, and the second set of elemets is formed by the second
> //  component of the displacements for all the nodes.
> //
> //  In this example we read such displacements from a file, but for
> convinience
> //  we have written this file using the pairs of $(x,y)$ displacement for
> every
> //  node. The elements read from the file should therefore be reorganized
> when
> //  assigned to the elements of the array. We do this by storing all the
> odd
> //  elements from the file in the first block of the array, and all the
> even
> //  elements from the file in the second block of the array. Finally the
> array
> //  is passed to the BSpline transform using the \code{SetParameters()}.
> //
> //  Software Guide : EndLatex
> 
> 
> // Software Guide : BeginCodeSnippet
>  std::ifstream infile;
> 
>  infile.open( argv[1] );
> 
>  for( unsigned int n=0; n < numberOfNodes; n++ )
>    {
>    infile >>  parameters[n];
>    infile >>  parameters[n+numberOfNodes];
>    }
> 
>  infile.close();
> //  Software Guide : EndCodeSnippet
> 
> 
> 
> //  Software Guide : BeginLatex
> //
> //   Finally the array is passed to the BSpline transform using the
> //   \code{SetParameters()}.
> //
> //  Software Guide : EndLatex
> 
> // Software Guide : BeginCodeSnippet
> 
>  bsplineTransform->SetParameters( parameters );
> 
> 
> _______________________________________________
> 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