After reading the two nice posts Algorithm for simplifying 3d surface? https://stackoverflow.com/questions/838761/robust-algorithm-for-surface-reconstruction-from-3d-point-cloud I have still a question about surface reconstruction.
I have some 3d point cloud data from range camera. It means that the point cloud data is noisy, has only coordination (x,y,z) information and represents only a partial surface of a scanned scene (aka. 2.5D data).
Before trying to mesh-lize them, I run some alignment algorithm (e.g. ICP) to merge multiple range data into one. Somehow the alignment is not perfect, it let the merge data sets have some not well overlapping surface artifacts and the whole data gets even more noisy!
here is an illustration.
here are points representing a surface (shown as a line)
.....................................................
here are points representing actually the same surface as the one above,
but due to imperfect alignment of multiple data sets they seem overlapping like onion shell.
............................
.............................
...............................
.......................................
can the algorithms (e.g. ball pivoting, poisson, marching cubes) handle such situation? or do I need some preprocessing to make the data set thinner to reduce the overlapping surfaces?
btw, I have tried MeshLab with just ball pivoting to reconstruct surface from such data sets. It works but some of surface normals are generated in wrong direction. I think that the overlapping points cause such problem.
The surface generated in MeshLab, the surface in white and black having different direction of normals.
Thanks for any suggestion and possible answer.