How to analyze the thickness of the model

Can I analyze the thickness of a stl model, and then get a color map.
The distance between the two sides of an object.

“Thickness” is not a very well defined term for models (surface meshes), but for shell-like meshes it is probably not too difficult to estimate it robustly and accurately.

Potential approaches:

A. Extract medial surface and estimate thickness as 2x of distance from medial surface. There are various ways of computing these in Slicer. One possible workflow:

  • Compute medial surface using Simple Filters module - BinaryThinningImageFilter.
  • Compute distance map using Simple Filters module - DanielssonDistanceMapImageFilter. Input is binary: Yes; Use image spacing: Yes.
  • Copy distance values from the distance map to model node using Probe volume with model module.

Critical part is the medial surface extraction. If you find that it is not accurate enough then you may to use smaller voxel sizes for the model->labelmap conversion, or use a different medial surface extraction method (for example, medial surface extractor in VMTK or PowerCrust algorithm).


B. Implement a custom algorithm in C++. Something like this should be very easy to implement if you are already familiar with C++ programming using VTK:


Another possibility is to use MeshLab to compute the Shape Diameter Function (SDF) that is a good generic definition of the thickness of a mesh.