Hi Nour and Luis,<br><br><br>Thank you for your answer Luis It is also a subject of interest for me.<br><br>I have been studying publications describing different ICP algorithms (one is mainly interesting: <a href="http://www.cs.princeton.edu/~smr/papers/fasticp/fasticp_paper.pdf">http://www.cs.princeton.edu/~smr/papers/fasticp/fasticp_paper.pdf</a>), as well as others describing methods for the the global registration step.<br>
<br>As noticed, ICP methods are interesting only when the two data sets are already (even if roughly) on top of each other. These methods can be implemented with ITK. However, what about the global registration step?<br><br>
Most particulary, I have read about a method described in this paper:<br><a href="http://graphics.stanford.edu/~ngelfand/papers/global/gelfand-robust-global-05.pdf">http://graphics.stanford.edu/~ngelfand/papers/global/gelfand-robust-global-05.pdf</a><br>
and more particularly in this thesis:<br><a href="http://graphics.stanford.edu/~ngelfand/papers/thesis/thesis.pdf">http://graphics.stanford.edu/~ngelfand/papers/thesis/thesis.pdf</a><br><br>It explains how to setup what seems a quite efficient method (computation time as well as accuracy) to fufill the first step of registration (even for datasets having just small overlapping areas): the global registration method makes use of different concepts:<br>
<br>- it is a method using <u>shape descriptors</u>, based on <u>performing integral operations on the underlying shape</u>, for identifying features in the data and selecting potential correspondence points in the model.<br>
<br>- among the datasets, a scale-space representation of the volume descriptor together with a persistence algorithm allows robustly selecting feature points at multiple scales<br><br>- the quality of the correspondence based on the coordinates of the feature points (selected using the integral volume descriptors) between the target and the source datasets is evaluated with the <u>distance root mean squared error</u>, or <u>dRMS</u>.<br>
<br>- if validated, a Correspondence Search is carried out.<br><br><br>As this method seems quite efficient, do you know if it is possible to implement it with ITK? Most notably, are the basic algortihms available (I am thinking to classes that would compute over a dataset the integral volume descriptor, the distance root mean square, branch-and-bound algorithm, etc...)?<br>
<br>I thank you in avance for your help.<br><br><br>Regards,<br><br><br>Pierre<br><br><br><br><br><div class="gmail_quote">2008/12/7 Luis Ibanez <span dir="ltr">&lt;<a href="mailto:luis.ibanez@kitware.com">luis.ibanez@kitware.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
Hi Nour,<br>
<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Welcome to ITK !<br>
<br>
<br>
Yes,<br>
you can do PointSet registration with ITK.<br>
<br>
<br>
Please do the following:<br>
<br>
<br>
1) Build ITK by turning ON the ITK_USE_REVIEW (advanced) flag in CMake.<br>
<br>
<br>
2) Use the itkVTKPolyDataReader.h class that you can find in<br>
 &nbsp; Insight/Code/Review, in order to load the two polydata files<br>
 &nbsp; into ITK. This will read legacy files in .vtk format.<br>
<br>
 &nbsp; If you have VRML file, then convert them first to .vtk files.<br>
 &nbsp; You can do this by using VTK readers and writers.<br>
<br>
<br>
3) Use the ICP method, as described in the examples:<br>
<br>
 &nbsp; &nbsp; &nbsp;Insight/Examples/Patented<br>
 &nbsp; &nbsp; &nbsp; &nbsp; IterativeClosestPoint1.cxx<br>
 &nbsp; &nbsp; &nbsp; &nbsp; IterativeClosestPoint2.cxx<br>
 &nbsp; &nbsp; &nbsp; &nbsp; IterativeClosestPoint3.cxx<br>
<br>
<br>
 &nbsp; &nbsp;Please note that the patent on the ICP method has expired,<br>
 &nbsp; &nbsp;so you don&#39;t have to worry about it at this point.<br>
<br>
<br>
<br>
 &nbsp; Regards,<br>
<br>
<br>
 &nbsp; &nbsp; &nbsp;Luis<br>
<br>
<br>
--------------------<br>
Nour Mestiri wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="Wj3C7c">
Hi all ITK users,<br>
I&#39;m new with you so please don&#39;t blame me if my questions are evident and try to help me if possible.<br>
I wanna do the registration of 2 objects (polydatas generated from vrml files).<br>
Is it possible? Is there a code example which allows to make that?<br>
Please i need help.<br>
Thank you so much<br>
<br>
<br>
<br></div></div>
------------------------------------------------------------------------<br>
<br>
_______________________________________________<br>
Insight-users mailing list<br>
<a href="mailto:Insight-users@itk.org" target="_blank">Insight-users@itk.org</a><br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
</blockquote>
_______________________________________________<br>
Insight-users mailing list<br>
<a href="mailto:Insight-users@itk.org" target="_blank">Insight-users@itk.org</a><br>
<a href="http://www.itk.org/mailman/listinfo/insight-users" target="_blank">http://www.itk.org/mailman/listinfo/insight-users</a><br>
</blockquote></div><br>