<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Marius, Stefan:<div><br></div><div>Sounds good to me. I look forward to the IJ contribution.</div><div><br></div><div>Nick</div><div><br></div><div><br><div><div>On Jul 5, 2008, at 3:53 AM, <<a href="mailto:M.Staring@lumc.nl">M.Staring@lumc.nl</a>> <<a href="mailto:M.Staring@lumc.nl">M.Staring@lumc.nl</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"> <div> <!-- Converted from text/plain format --><p><font size="2">Hi Luis and Nick,<br> <br> in elastix we have implementated two classes helpful for the B-spline deformable transform.<br> <br> - One class computes settings for the B-spline grid (GridOrigin, GridRegion, GridSpacing, etc) for multiple resolutions, given a final B-spline grid spacing and an upsample schedule similar to that of the image pyramids. So, it can compute any upsampling schedule.<br> - The other class does the real upsampling of a B-spline grid given the result of a previous resolution and the desired output (which was computed with the previous class).<br> <br> We are planning to make an Insight Journal contribution for these helper classes. Meanwhile, you could inspect them when you download the elastix sources from<br> <br> <a href="http://elastix.isi.uu.nl/download.php">http://elastix.isi.uu.nl/download.php</a><br> <br> and see if they fit your need. The classes can be found in the directory src/Components/Transforms/BSplineTransform (or otherwise src/Common out of my head).<br> <br> Regards,<br> <br> Stefan and Marius<br> <br> <br> -----Original Message-----<br> From: <a href="mailto:insight-users-bounces@itk.org">insight-users-bounces@itk.org</a> on behalf of Nicholas Tustison<br> Sent: Fri 7/4/2008 9:21 PM<br> To: Luis Ibanez<br> Cc: <a href="mailto:insight-users@itk.org">insight-users@itk.org</a><br> Subject: Re: [Insight-users] Deformable registration usingMultilevel B-Spline<br> <br> Hi Luis,<br> <br> I have also written a B-spline control point class (which hasn't been <br> uploaded to the IJ, yet) which takes as input an control point image. <br> One of the possible outputs is a control point grid with (1/2)^n <br> resolution (but the values of the B-spline object remain the same) <br> based on the multi-level component of Lee's paper. I would certainly <br> be willing to volunteer my services in integrating it with whatever <br> you had in mind. If you're interested we can discuss the requirements <br> during an upcoming t-con.<br> <br> Nick<br> <br> <br> <br> On Jul 4, 2008, at 1:21 PM, Luis Ibanez wrote:<br> <br> ><br> > Hi Torsten,<br> ><br> ><br> > Ahhh... in ITK you have to check often :-)<br> ><br> ><br> > The recently added example:<br> ><br> ><br> > Insight/Examples/Registration/<br> > DeformableRegistration15.cxx<br> ><br> ><br> > illustrates how to do multi-level BSpline.<br> ><br> ><br> > It pretty much follows the procedure that you just described.<br> ><br> > That being said, in this example, the process is done "manually".<br> ><br> > It will be interesting to package the whole in to a filter.<br> ><br> > Time to look at Nicks paper in the Insight Journal....<br> ><br> ><br> > Regards,<br> ><br> ><br> > Luis<br> ><br> ><br> ><br> > -----------------------<br> > Torsten Rohlfing wrote:<br> >> Hi --<br> >> Last time I checked, there was no implementation of the multi-level <br> >> B-splines as described in the Lee paper in ITK. The <br> >> MultiResolutionImageRegistration classes, as far as I know, only <br> >> affect the image resolution, which then also implies multi-<br> >> resolution for PDE-based deformation fields, but not for the B-<br> >> spline.<br> >> To get a multi-resolution B-spline, you have three options:<br> >> 1. Implement the refinement formula as described in Lee: write a <br> >> filter that takes a B-spline transform and converts it to another <br> >> transform with half the control point spacing and control point <br> >> positions determined so that the deformation fields are identical <br> >> (formula is given for 2D case in Lee paper; 1D formula is simple to <br> >> derive and can be applied in n dimensions successively).<br> >> 2. Get the itkSerial Transform class from the InsightJournal and <br> >> implement a concatenation of successively finer B-spline <br> >> transformations as described in Daniel Rueckert's 1999 TMI paper. <br> >> It's a little (or a lot, depending on the number of <br> >> transformations) slower than refinement, but you have more <br> >> flexibility with the refinement, it's potentially more powerful, <br> >> and you can make it diffeomorphic by enforcing constraints on each <br> >> transformation in the chain, like described in Rueckert's 2006 <br> >> MICCAI paper.<br> >> 3. Use a vector image interpolation class from ITK to refine the B-<br> >> spline; you basically need to get the control point array as an ITK <br> >> image (there's a method for that in the B-spline class), then <br> >> refine that image by interpolation, then set the B-spline control <br> >> points from the refined image.<br> >> I'd recommend against option 3. because it's a hack, but it gives <br> >> you an idea on how to implement option 1.<br> >> Best,<br> >> Torsten<br> >> _______________________________________________<br> >> Insight-users mailing list<br> >> <a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br> >> <a href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</a><br> > _______________________________________________<br> > Insight-users mailing list<br> > <a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br> > <a href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</a><br> <br> _______________________________________________<br> Insight-users mailing list<br> <a href="mailto:Insight-users@itk.org">Insight-users@itk.org</a><br> <a href="http://www.itk.org/mailman/listinfo/insight-users">http://www.itk.org/mailman/listinfo/insight-users</a><br> <br> </font> </p> </div> </blockquote></div><br></div></body></html>