Hi Daniel/all!
I'm looking to extract precise edges of concrete slabs from a TLS scan - I've tried:
- extract points by normal change rate
- extract upper sections, sample the sections with dense points, then 2.5d mesh (poisson doesn't work very well with sectioned pointclouds I'm finding)
- mesh normally at 12-16 octree, dirichlet boundary, 1 samples per node, point weight 0, linear fit. This tends to round off corners, no way to get it to pick the higher edge points.
None of these methods provide the best available edge from the data. The closest to a true edge seems to be from extracting upper-biased cross sections and then sampling points from them, but there doesn't appear to be a way to turn these cleaner datasets into clean edges.
Any tips on methods that could get me nice edges?
Mesh edges rounding
Mesh edges rounding
- Attachments
-
- Screenshot 2025-01-30 213222.png (400.94 KiB) Viewed 6199 times
Re: Mesh edges rounding
How have you computed the normals? I'm a bit surprised that Poisson smooths them that much. Well, it always smooths things a little bit, but not to this extent. Or maybe, since the normal computation is based on an average, it fails to generate properly oriented normals. That's always a challenge.
Daniel, CloudCompare admin
Re: Mesh edges rounding
Great question Daniel - I've tried a lot of iterations of normal computation methods, but this could be the issue. Are there settings you'd recommend for a case like this?
For context the overall scan area of interest is 6x10 meters, I captured it from 12 scans, surface density at 0.03m radius is about 7k points.
For context the overall scan area of interest is 6x10 meters, I captured it from 12 scans, surface density at 0.03m radius is about 7k points.
- Attachments
-
- Screenshot 2025-02-02 150601.png (82.08 KiB) Viewed 6088 times
Re: Mesh edges rounding
It's always challenging, especially on sharp edges. If the scan is clean, then it's better to use a small radius... but this might also give noisy normals. You could try to see if it helps.
Also, a good orientation is very important otherwise the PoissonRecon algorithm might be locally confused. In this case the '+Barycenter' preferred orientation looks a good solution.
Also, a good orientation is very important otherwise the PoissonRecon algorithm might be locally confused. In this case the '+Barycenter' preferred orientation looks a good solution.
Daniel, CloudCompare admin