I have just been asked the following question, and I somehow felt short of smart answers. You are given a series of $N$ triplets of values ($P_1$, $P_2$, $P_3$), pertaining to physical measurements. $N$ is in the order of $100$ to several thousands. My colleague would like to draw isosurfaces from this dataset.

I have not more (yet) information about the quality of space filling, and the uncertainty around the data. So I suggested to interpolate the given point cloud to a regular grid and use standard isosurface extraction. But there might be other, more direct methods, dealing with point cloud issues.

Some related papers:

Would you suggest sounder approaches (references, software implementing them are a plus)

  • $\begingroup$ Are the points supposed to be forming a point cloud (e.g. LIDAR, Doppler) or are they more like a height-field kind of dataset (e.g. Atmospheric Pressure, terrain model)? $\endgroup$ – A_A Dec 19 '18 at 5:46
  • 1
    $\begingroup$ @A_A as far as I interpret Laurent's question, it's a point cloud; I'm not quite sure how to interpret that, though. Laurent, are we supposed to interpret the existence of a a point at a specific location $\left(P_1, P_2,P_3\right)$ as an occurrence of that triple value, so that we could kind of interpret things as realisations of a 3D random process, and then you're looking for isosurfaces in that randomness' PDF, or are values attached to these coordinates? $\endgroup$ – Marcus Müller Dec 19 '18 at 10:50
  • $\begingroup$ The data can be seen as a point cloud. $\endgroup$ – Laurent Duval Dec 20 '18 at 18:35

You are given a series of $N$ triplets of values ($P_1$, $P_2$, $P_3$), pertaining to physical measurements. $N$ is in the order of $100$ to several thousands. My colleague would like to draw isosurfaces from this dataset.

This is a little bit broad but perhaps still with some chances of accurate answers.

To an extent, it is important to know where the data comes from because it affects how the iso-surfaces are reconstructed. A Digital Elevation Model, for example, is essentially a 2D construction but volumetric data are inherently 3D. In the latter case, a trully 3D surface has to be fitted through the points of the contour which is much more challenging.

In both cases, the marching cubes algorithm is the standard way to extract the iso-surface but other methods involving a shrinking elastic surface (basically, 3D generalisations of active contours) have also been used.

In terms of practically applying it:

  1. For relatively small point-clouds (a few hundreds of points), Blender with Point Cloud Skinner, can produce quick results. I have used this to create a surface through Magnetoencephalography sensors (whose locations are known) which ends up looking like a helmet. If your point cloud describes a convex shape, this will have no problems recovering it. I think that it works similarly to QHull (i.e, extracts the convex hull) but it has a threshold parameter that to an extent allows it to account for holes.

  2. Paraview. Incredibly useful and with Python scripting capabilities. The software handles loading the data and several standard operations and allows extracting the results. The good thing about Paraview is that it includes a "raw import" functionality which you can use to load data in whatever format you may have it in. Isosurfaces are produced with "Contour". This is straightforward for volumetric data. If you already have the points, there is a "Table to structural grid" function that will bring the data to the expected form prior to applying "Contours".

    • I would consider this the faster option over the Visualisation Toolkit but if you need more control over the result, you might find the VTK more useful.
  3. Meshlab. Meshlab is specifically built for handling huge point clouds including fitting surfaces. Meshlab is interesting because there are various scripts you can use around it, depending on what you are trying to achieve.

  4. The Point Cloud Library and its Python bindings. This is similar to Meshlab in that it can handle huge volumes of data and it includes a surface fitting capability. It is however more challenging in setting up and operating.

Hope this helps.

  • $\begingroup$ > Hope this helps. It does $\endgroup$ – Laurent Duval Dec 20 '18 at 18:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.