Cross Section of PointCloud
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Justin Park
am 7 Jul. 2017
Kommentiert: Steven Amor
am 21 Mai 2020
Hello everyone,
I have a 3D point cloud, and I want to find the cross section of it by slicing it with a plane that is defined by a point and a perpendicular vector. Then I wish to detect and store the points close to the plane on either side. Any ideas on how to do this? Thanks in advance.
4 Kommentare
Sallymarc
am 19 Jul. 2017
Bearbeitet: Sallymarc
am 19 Jul. 2017
Hi, I have a problem, having 3D points and I need to see the cross section of that by slicing that. But I need to know one step back. I do not know even how to define a plane, based on points and the normal to the plane. Also, I do not know how to define a threshold for a plane. Any one can explain this in more detail or willing to share the example code here? Thanks
Steven Amor
am 21 Mai 2020
We have been playing around with our Euclideon Vault SDK inside Matlab as a way to view massive 3D Point Clouds - similar to what we've previously done for the Unity platform.
(The full SDK includes the ability to do cross sections)
My question to this forum is whether anyone has a need for such a thing, and if so what specific features would you want?
We can render our Unlimited Detail models inside Matlab using CPU only, rotate the model but what else?
- specify camera position?
- would you want geospatial support? what geo-zones? local grid?
- select a point to see meta-data?
- select and area?
- export an area to Point Cloud / LAS?
- Anything else?
I assume currently people are using Matlab for Point Cloud processing, transformation, classification, ML, etc. and exporting the data into other packages for viewing. Would it be useful to view the point cloud instantly inside Matlab?
Steve
samor@euclideon.com
[url]http://www.euclideon.com/vault[/url]
Akzeptierte Antwort
John D'Errico
am 7 Jul. 2017
Bearbeitet: John D'Errico
am 7 Jul. 2017
Ok. Given a tolerance in the form of a distance, then just compute the distance to the plane!
Retain any points that lie within the tolerance.
Personally, I'd probably color code the points as plotted, based on how far they lie off the plane, but within the tolerance.
If you know how to define a plane, based on a point and the normal to the plane, then the distance is given by a simple dot product. So if pointInPlane is the point, and normalToPlane is the normal vector (assume it is of unit length)
D = dot(P-pointInPlane,normalToPlane);
If you do this carefully, the above computation is vectorized. Even simpler, you can do it as a simple matrix multiply, without even needing the function dot. After all, a matrix*vector multiply is just a dot product anyway. Use find to choose the points that are closer than the indicated tolerance. Then I'd just use a tool like scatter to plot the points with my chosen color mapping.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Point Cloud Processing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!