<div>RIght, so I wrote the BSplineControlPointImageFunction to do that.  I imagine</div><div>that you should be able to copy those B-spline classes from the developmental</div><div>version to your local repository and things should work seemlessly.  </div>

<div><br></div><div>So you would want to do as you did before with the BSplineScatteredDataPointSetToImageFilter,</div><div>i.e.</div><div><br></div><div>typedef itk::BSplineScatteredDataPointSetToImageFilter&lt;InputPointSetType, OutputImageType&gt; BSplineFilterType;</div>

<div>typename BSplineFilterType::Pointer bsplineFilter = BSplineFilterType::New();</div><div>bsplineFilter-&gt;SetInput(</div><div><br></div><div>// set the rest of the parameters.  </div><div><br></div><div>bsplineFilter-&gt;SetGenerateOutputImage( false );  // We don&#39;t want to evaluate the output sampled b-spline object but we still want to generate the fitting control points (PhiLattice).</div>

<div>bsplineFilter-&gt;Update();</div><div><br></div><div>typedef itk::BSplineControlPointImageFunction&lt;OutputImageType&gt; BSplineFunctionType;</div><div>typename BSplineFunctionType::Pointer bsplineFunction = BSplineFunctionType::New();</div>

<div>bsplineFunction-&gt;SetInput( bsplineFilter-&gt;GetPhiLattice() );</div><div><br></div><div>Then you should be able to call Evaluate() at any continuous point in your domain.</div><div>Note that generating the sampled output in the bsplineFilter is going to be</div>

<div>magnitudes faster due to certain assumptions that can be made for regularly sampling</div><div>the domain for evaluation versus the random sampling case which is accounted</div><div>for in the bsplineFunction.  However, sometimes that&#39;s necessary which is why</div>

<div>I wrote that function class.</div><div><br></div><div>Let me know if you have any further questions,</div><div>Nick</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>

<br></div><div><br></div><div><br></div><br><br><div class="gmail_quote">2011/7/6 Ramón Casero Cañas <span dir="ltr">&lt;<a href="mailto:rcasero@gmail.com">rcasero@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">On 20/06/11 14:51, Ramón Casero Cañas wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Yes, the correspondence is one-to-one. I had actually bumped into your<br>
itk::<u></u>BSplineScatteredDataPointSetTo<u></u>ImageFilter class, but I hadn&#39;t<br>
realised it can be used for warping. Thanks for the pointer, I&#39;ll<br>
definitely give it a try!<br>
</blockquote>
<br>
<br></div>
Hi Nick,<br>
<br>
Sorry for the delay, I have been out of my office.<br>
<br>
I have been trying to make this work, and I have bumped into a problem.<br>
<br>
As you suggested, I define the warp as an R^3 -&gt; R^3 mapping.<br>
<br>
x -&gt; (y-x)<br>
<br>
where x, y are the source, target landmarks, respectively.<br>
<br>
Now I have an image where each voxel is the interpolated value of the warp field.<br>
<br>
How can I sample the image at specific points? What I want, in the end, is a function<br>
<br>
<br>
yi = bspline_warp(x, y, xi)<br>
<br>
where xi are some points to be warped to yi.<br>
<br>
<br>
In the documentation of ITK v4.0, there&#39;s a class BSplineControlPointImageFuncti<u></u>on<br>
<br>
<a href="http://www.itk.org/Doxygen/html/classitk_1_1BSplineControlPointImageFunction.html#details" target="_blank">http://www.itk.org/Doxygen/<u></u>html/classitk_1_<u></u>1BSplineControlPointImageFunct<u></u>ion.html#details</a><br>


<br>
that seems to be ready for this. However, in the current stable release v3.20, that class is not present<br>
<br>
<a href="http://www.itk.org/Doxygen320/html/files.html" target="_blank">http://www.itk.org/Doxygen320/<u></u>html/files.html</a><br>
<br>
Is there a nice way of doing the sampling without having to move to the development release of ITK?<br>
<br>
Best regards,<div><div></div><div class="h5"><br>
<br>
Ramon.<br>
<br>
-- <br>
Dr. Ramón Casero Cañas<br>
<br>
Computational Biology<br>
Department of Computer Science<br>
University of Oxford<br>
Wolfson Building, Parks Rd<br>
Oxford OX1 3QD<br>
<br>
tlf     <a href="tel:%2B44%20%280%29%201865%20610737" value="+441865610737" target="_blank">+44 (0) 1865 610737</a><br>
web     <a href="http://web.comlab.ox.ac.uk/people/Ramon.CaseroCanas" target="_blank">http://web.comlab.ox.ac.uk/<u></u>people/Ramon.CaseroCanas</a><br>
photos  <a href="http://www.flickr.com/photos/rcasero/" target="_blank">http://www.flickr.com/photos/<u></u>rcasero/</a><br>
</div></div></blockquote></div><br>