Export volume to PLY point cloud?

Hello everyone!

This is my first post here on the forum. I am looking for a way to export data from Slicer as a 3D point cloud, preferable in PLY format. Is there a plugin / extension that can be used for this? Otherwise I will look into coding my own…
Kind regards,
Stephan

Would you like to export each voxel as a point? Whatvwould be the use case? Point cloud rendering would be probably lower quality and require more computation than volume (rectilinear grid) rendering.

If you are looking for rendering of particular structures then you need to segment the volume, for example using Segment Editor module.

What is your end goal? Rendering, processing, analysis, printing,…?

Hi Andras,

I work on DNN-based point cloud analysis tools, and would be curious to see what can be done with this type of data as input simple_smile I could develop a tool to take still image slices and project them as point clouds myself but I would need to figure out how to get the scale correct and interpret MRI scan data from scratch, so I was wondering whether this would be possible directly using Slicer.

cheers,

Stephan

1 Like

Did you deal with it ?

I am also looking for a way to convert a volume model to a point cloud (XYZ coords), both for visualization purposes and to use for classification in a neural network (GitHub - charlesq34/pointnet2: PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space)

I think in the end I just used open3d and numpy and made point clouds by stacking pixels exported as points (like having one flat point cloud with no camera projection every Xmm (slice size)).

1 Like

Every model is a point cloud as well. You can just ignore the connectivity information between the points. You can also get the point list as a numpy array and save it in any format you want.

However, if you drop the connectivity information then you lose lots of information and you can never reconstruct the original surface just from point positions. The more densely and uniformly the mesh points are distributed, the more information can be reconstructed later. So, before dropping connectivity information, you may want to remesh the model (subdivide, decimate, etc. or resample on a grid or use more sophisticated algorithms, such as ACVD).

Labelmaps seem to be much more natural, efficient, and predictable, and lossless representation of volumes, though. So I’m not sure if it is worth all the trouble of converting to a point cloud representation.