[vtkusers] Re : closest point on a surface / vtkIterativeClosestPointTransform
Jason Taclas
jason.taclas.2006 at alum.bu.edu
Mon Mar 10 15:01:05 EDT 2008
I have been trying to follow your suggestions, but I am somewhat hung up on
the data set;
When you say
locator->SetDataSet(data); // data represents the surface
what is the representation of the surface? Is it the surface itself, or the
maskpoints vertices data? I had originally imagined using the vertices to
represent the surface in the locator, and measure the distance to this
surface representation from a different point cloud, but your description
takes the vertices, distorts them with noise and displaces the noisy
vertices representation in space. I have been having trouble using locators
(my application tends to crash at the implimentation of the
"findclosestpoint" method), and I wonder if it is because I am using the
wrong data set, be it from the filter producing my surface, or the
maskpoints vertices data.
Jason
On Thu, Feb 21, 2008 at 4:57 AM, Steffen Oeltze <
stoeltze at isg.cs.uni-magdeburg.de> wrote:
> Yes, it works. Instead of creating the surface, I import a surface.
> Then, I'm using vtkMaskPoints as well to randomly select surface
> vertices. Next, I apply some noise to these vertices, a little bit of
> translation and rotation. Finally, I use the ICP to bring the points
> back to the surface.
>
> Then, I measured the Euclidean distance between the transformed points
> (before and after ICP) and the surface. For that purpose, I use:
>
>
> vtkCellLocator *locator = vtkCellLocator::New();
> locator->SetDataSet(data); // data represents the surface
> locator->SetNumberOfCellsPerBucket(1);
> locator->BuildLocator();
> locator->Update();
>
> in a loop:
>
> locator->FindClosestPoint(inPoint, closestPointOnSurface, cell_id,
> sub_id, dist2);
>
> Cheers,
> Steffen
>
>
>
>
> Jason Taclas schrieb:
> > have you gotten this to work? I'm having trouble on a similar project;
> > I am also using vtkIterativeClosestPoint to register a point cloud to a
> > surface, and I also need to make distance measurements. If it matters
> > at all, my surface was created with vtkMarchingCubes. I used
> > vtkMaskPoints with GenerateVerticesOn to get to vertices, is this what
> > you did?
> >
> > On Feb 15, 2008 9:21 AM, Steffen Oeltze
> > <stoeltze at isg.cs.uni-magdeburg.de
> > <mailto:stoeltze at isg.cs.uni-magdeburg.de>> wrote:
> >
> > Thanks a lot for the hint! I'm using vtkCellLocator now to determine
> the
> > closest point on a surface for a given position in 3D.
> >
> > Steffen
> >
> > cedric.schwartz at enst-bretagne.fr
> > <mailto:cedric.schwartz at enst-bretagne.fr> schrieb:
> > > Hi,
> > > As far as I know you can't have the distance information with the
> ICP
> > > transform. Maybe you should try vtkPointLocator or vtkKdTree in
> > order to
> > > obtain the distance measure.
> > > Cedric
> > >
> > > _______________________________________________
> > > This is the private VTK discussion list.Please keep messages
> > on-topic.
> > > Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> > > Follow this link to subscribe/unsubscribe:
> > > http://www.vtk.org/mailman/listinfo/vtkusers
> > >
> > >
> >
> >
> > _______________________________________________
> > This is the private VTK discussion list.
> > Please keep messages on-topic. Check the FAQ at:
> > http://www.vtk.org/Wiki/VTK_FAQ
> > Follow this link to subscribe/unsubscribe:
> > http://www.vtk.org/mailman/listinfo/vtkusers
> >
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > This is the private VTK discussion list.
> > Please keep messages on-topic. Check the FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
> > Follow this link to subscribe/unsubscribe:
> > http://www.vtk.org/mailman/listinfo/vtkusers
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20080310/60fb7306/attachment.htm>
More information about the vtkusers
mailing list