Surface Measurements & Model Comparison in 3D Slicer

Hello everyone,

I am currently testing 3D Slicer with surface models exported from the Vectra H2 system (.obj format with texture). The models import and display correctly in the 3D view, but I could not find direct options for:

  • surface-area measurement of freely selected regions (e.g. around the eyes),

  • automatic difference calculation / distance mapping between two surface models (e.g. before vs. after treatment).

So far, model comparison seems limited to manual alignment using transforms. I could not find an automatic registration tool or quantitative difference mapping (heatmap) for OBJ surface meshes.

My questions are:

  • Does 3D Slicer support surface-area measurements for OBJ meshes?

  • Is there a way to perform automatic comparison (registration + difference/heatmap) between two surface models?

  • Are there modules, extensions, or Python scripts that can be used for this workflow?

Any advice, references, or example workflows would be greatly appreciated.

Thank you!

You can see the surface area of a model in Models module → Information section.

If you are interested in a specific region then you can use Dynamic modeler module to extract a region of the model. There are several tool to choose from: Plane cut defines a region by a one or more planes, Curve cut allows you to specify a surface region by a closed curve, Boundary cut allows using several node types (curves, planes, etc), ROI cut works for markup ROI boxes, Select by points can select a region using Euclidean or geodesic distance from points.

You can compute distances between surfaces using ModelToModelDistance extension.

ModelToModelDistance computes distances and stores them as point scalars in the model, which then you can use for computing statistics, crop the model, etc. - using a few Python commands that you can run directly in Slicer’s Python console.