is there any c++/c open source implementation? i got two point clouds and would like to match them.. any ideas?
-
how exactly do you want to match them? Any diagram or example would help. – Lazer Aug 25 '10 at 09:49
-
i have two point clouds (a fixed model shape and data shape) of an object! now i try to algin the data to the model and get the distances of each point... later on i am using this distances in a svm to classify the data shape.. what i need now is an efficient implementation of the ICP, maybe hierarchical? my point clouds consist of 30.000 points... – iniesta Sep 04 '10 at 08:59
4 Answers
Give LibICP a shot, although I personally have not used it so far.
http://www.cvlibs.net/software/libicp.html
EDIT: I tried it by myself, not a great experience -- the library is short of documentation and example code. Also, I didn't receive much help from the authors too.

- 1,753
- 2
- 26
- 36
-
It's also worth noticing that if `libicp`'s SVD does not converge (the limit of 30 iterations is hard-coded), it will print something to stderr and continue - it has no API to tell your code about non-convergence. – nh2 Jan 19 '14 at 15:54
I wrote a article about accelerated line search on ddj.com some time ago. I dont exactly understand what you want to do but the approach shown there divides the whole area into "quadrants" of a given search width. This reduces the time for search significantly. It may also be used with points.

- 12,032
- 10
- 54
- 92
You can compare these 2 clusters of points by measuring Hausdorff distance
between clusters. The bigger Hausdorff distance is - the more dissimilar clusters are.
hope that helps.

- 10,935
- 5
- 50
- 70
Please refer to trimesh2 library, which provides a ICP example. http://www.cs.princeton.edu/gfx/proj/trimesh2/

- 1