Normals Aimed toward sensor

Feel free to ask any question here
Post Reply
meistro
Posts: 2
Joined: Fri Jun 30, 2017 6:03 pm
Location: Chicago

Normals Aimed toward sensor

Post by meistro »

Hi I'm a new user of CC. I have a pointcloud with +-70 million points captured with a TLS from 32 locations. I want to mesh certain areas.

The scans do not contain normals. My thought process to have the normals aim the correct direction is to have their direction facing the scan location of that particular scan. After I orient each file I can then merge with the hopes that all the normals will stay intact.

After locating a sensor, I compute normals. What normals it does compute seem perfect. They appear to be more accurate than any other method I have tried. It appears to work except it only calculates points a short distance from sensor position.

Here are some images..
https://drive.google.com/drive/folders/ ... sp=sharing


Is there a more productive way to do this or what setting do I modify to allow the rest of the points to get normals computed?

Any help is greatly appreciated. I've been messing with this all week :)

Mark
daniel
Site Admin
Posts: 7330
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Normals Aimed toward sensor

Post by daniel »

Which method did you use to compte the normals? With a 'kernel' (radius)? In this case it's probably too small for the points that are far from the origin (because the farther they are, the less dense is the cloud and the less neighbors you'll catch in the sphere.

If you have the TLS scans, can you maybe export them as PTX or FARO files? In this case you'll also have the gridded structure of the scans, and you'll be able to compute 'perfect' normals (using the scan "grids").
Daniel, CloudCompare admin
meistro
Posts: 2
Joined: Fri Jun 30, 2017 6:03 pm
Location: Chicago

Re: Normals Aimed toward sensor

Post by meistro »

Thanks for the response. I tried many methods and I don't remember. I created my own method that works 100% but takes a long time.

First a little history... My goal is to create a surface model of a large point cloud.

I did not perform the scans. I received a Recap file from the general contractor for a project I'm working on. This was pretty much useless to me because the file was unstructured and Recap sucks. I requested the raw scans. There are 32 of them. That resulted in me receiving an E57 file. It takes days for response so I dealt with it and started experimenting. I'm not really experienced with working on point cloud files. I do however have a love for Rhino & Grasshopper :). Using Volvox I opened the file and cropped it to a box to weed out unnecessary points. Using the index I was able to work on the individual scans. I used the pose info to create vectors for all points to aim at. Now I have XYZNxNyNz. A little indexing and formatting and I wrote the 6 values per line to Excel, saved as CSV and renamed as PTS.

When opening in CC it's beautiful. Every point is oriented to the scanner. I can combine to one cloud then divide into about 6 sections for surfacing.

It is a long process and Grasshopper spends a long long time working it out. The result is 100% perfect which is what I want.

Is there a better way to achieve this? I have 31 more to do :| Is there command line functions I can utilize to reduce the load on my poor workstation?

Thanks!!!

Mark
daniel
Site Admin
Posts: 7330
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Normals Aimed toward sensor

Post by daniel »

Good job doing all this on your own!

It would have been much more simple if you could have get the scans as PTX files for instance.

Anyway, in the current state of your process, you could maybe try to use the Poisson Surface Reconstruction library directly instead of using it via CloudCompare? See http://www.cs.jhu.edu/~misha/Code/PoissonRecon
Daniel, CloudCompare admin
Post Reply