Vyacheslav
Vyacheslav

Reputation: 27211

point cloud generation for XYZ-format in order to use in GLAP

As I read there is to kind of XYZ format: x y z <--- in one line and x y z nx ny nz <--- in one line.

the function CGAL::make_surface_mesh() is extreamly slow if I use just x y z (without normals). What is the proper way to retrieve normals from PCD-format (PCL-lib) ? Or how to generate it manually (by my own code)?

Upvotes: 0

Views: 383

Answers (1)

BrunoLevy
BrunoLevy

Reputation: 2623

There are several methods to estimate normals. One possibility is to insert all the points in a KdTree, then get a certain number of nearest neighbors from each point. Once you get the nearest neighbors, you can either fit a higher-order surface (quadric) to the points and compute its normal, or you can do a principal component analysis of the points and take the eigenvector associated with the smallest eigenvalue. Both methods as well as several refinements are implemented in the Point Cloud Processing package of CGAL:

http://doc.cgal.org/latest/Point_set_processing_3/index.html#Point_set_processing_3NormalEstimation

Depending on your input pointset, different methods / tunings will perform differently (it may require experimentation / parameter tuning).

Note: you may also try the different reconstruction algorithms available there:

http://doc.cgal.org/latest/Surface_reconstruction_points_3/

Upvotes: 1

Related Questions