[Insight-users] Applying a transform? PointSet registration?
Atwood, Robert C
r.atwood at imperial.ac.uk
Fri May 13 10:54:51 EDT 2005
Thanks Luis! I thought was something like that ,but for some reason it was not clear to me that a PointSet is able to be used where a 'mesh type' is asked for. I had looked at this doxygen page but assumed it had to be a mesh (with polygons, edges etc) I guess you meant TransformMeshFilter when you typed TransformMeshImageFilter.
Can a transform be applied to a single point, or would you create a pointset with one point in it ? More generally , how do I know what types of class can go in TInputMesh?
itk::TransformMeshFilter< TInputMesh, TOutputMesh, TTransform > Class Template Reference
Next question: Since I successfully used VersorRigid3dTransform for registering 3D image files I thought I could use this transform for registring point sets that may be offset and rotated. However, if I try to plug the special Versor optimizer into the registration method, it comlains that it requires a MultipleValuedNonLinearOptimizer. I don't know exactly what that means in this context, but follwing the example in the Software Guide I used Euler3dTransform instead. So far so good...
But, when looking in the Doxygen pages for PointSetToPOintSetRegistrationMethod it says:
"The registration method also support a generic optimizer that can be selected at run-time. The only restriction for the optimizer is that it should be able to operate in single-valued cost functions given that the metrics used to compare PointSet with PointSets provide a single value as output."
Then, when I look at the optimizer used in the example
LevenbergMarquardtOptimizer , and go to its parent class,
MultipleValuedNonLinearVnlOptimizer, it says:
"This class is a base for the Optimization methods that optimize a single valued function."
Its parent class says:
MultipleValuedNonLinearOptimizer
"This class is a base for the Optimization methods that optimize a multiple valued function."
So I am confused about when it is, or just what is, "single" or "multiple" valued and then how to decide which optimizer will work with which registration method?
I am thinking about future uses as I think the Levenberg-Marquardt with Euler3d will work for this purpose. For example we might wish to register images and/or point-scans of the prosthsis to various medical images of the patient , then I would need to use other registration methods and figure out which optimizer works with it!
Thanks again.
Robert
-----Original Message-----
From: Luis Ibanez [mailto:luis.ibanez at kitware.com]
Sent: Fri 5/13/2005 1:48 PM
To: Atwood, Robert C
Cc: ITK Users
Subject: Re: [Insight-users] Applying a transform? PointSet registration?
Hi Robert,
The class that you are looking for is the:
TransformMeshImageFilter:
http://www.itk.org/Insight/Doxygen/html/classitk_1_1TransformMeshFilter.html
Simply instantiate this filter using your PointSet<> as template
parameter. Then connect as inputs your Transform and your input
PointSet.
The filter will apply the Transform to all the Points in your PointSet.
Regards,
Luis
--------------------------------------------------------------------------------
Atwood, Robert C wrote:
> I have been poring through the software guide and the Doxygen for hours,
> and I cannot see how to apply a transform to a point or a PointSet? I
> know how to apply to an image, you create a resample image filter and
> set the transform , is there a similar filter for PointSets (and what is
> it called) or is the process different?
>
>
> The immediate goal is to register two point sets, then somehow quantify
> the difference between them. I believe that this would be enabled by
> transforming one of the point set into the space of the other according
> to the result of the registration.
>
> The overall goal is to quantify (and eventually minimize) the misfit of
> certain prostheses introduced at certain stages during the manufacturing
> process, by scanning 'before' and 'after' examples. The scan method
> produces a point set. The point set is not necessarily any sort of
> regular grid. (The points are in 3-d by the way) The 2 sets should
> generally be reasonably close to each other to start with (by placing
> the example in the same location and orientation)
>
>
>
> Thanks,
> Robert
>
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/insight-users/attachments/20050513/b69cdc32/attachment.htm
More information about the Insight-users
mailing list