[Insight-users] Need Help !!! Approximation of a 3D curve with Splines

Luis Ibanez luis.ibanez at kitware.com
Fri Aug 17 12:35:10 EDT 2007


Hi Deepak,

Yes you can do this with ITK.

Please take a look at the KernelTransform class and its derived
classes:


itkElasticBodyReciprocalSplineKernelTransform.h
itkElasticBodySplineKernelTransform.h
itkThinPlateR2LogRSplineKernelTransform.h
itkThinPlateSplineKernelTransform.h
itkVolumeSplineKernelTransform.h


If you set a linear sequence of 3D points as the Source landmarks,
(eg. a sequence of points regularly spaced along the X axis).
and the 3D points that you arre trying to approximate, as the
TargetLandmarks, then you will be able to generate the approximating
spline by calling Transform() with points that are in the input
space of the X axis.

That is, by using a sequence of input point with components:

                    p[ S, 0, 0 ]

you will generate transformed points along your curve, and they
will be parameterized by "S".

You can move between interpolation and approximation by changing
the values of the "Stiffness" parameter in the KernelTransform.



You may also use the NonUniform BSPline classes:

    itkNonUniformBSpline.h
    itkNonUniformBSpline.txx


   Regards,


      Luis


-----------------
Deepak Roy wrote:
> Hello,
>  
> I have a set of noisy/scattered 3D data points ( XYZ ) which ideally 
> should belong to a curve in 3D space.
>  
> I want to use a smoothing/approximation spline to approximate this 3D 
> curve.
>  
> All the references/books on splines that i found deal with spline 
> approximation in 2D and i am not able to find any reference which 
> computes an approximating spline curve in 3D space.
>  
> I have done a few experiments with the 2D smoothing spline in matlab. I 
> extended this to 3D by fitting two splines --- for ZX data and ZY data. 
> Then i combined these two splines together to achieve a 3D approximating 
> spline curve. But the problem with this is that it is done through 
> projections, and consequently if there is more than one value at the 
> same data site then the smoothing spline gives a weighted average of the 
> values ---- and this is not what is desired.
>  
> Is there a way to approximate scattered/noisy 3D data points using a 
> spline in ITK ??? Or can anyone throw light on how this is done ???
>  
> I would really appreciate the help.
>  
> Thanks in advance.
>  
> Regards,
>  
> Deepak
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> 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