Model to Model Distance Parameters

What are the differences between the parameters in model to model distance? By that I mean, what’s the differences between absolute closest point, signed closest point, and closest point? How do these differences effect the shape model created?

Since nobody seems to know this off hand, the best would be if you could have a look at the source code and get this information from there. We would appreciate if you shared what you’ve found so that we can add it to the module documentation.

@bpaniagua

I had a student use this module in the past, so I know that signed distance is negative when one model is inside the other. I don’t know about the closest points computation. The module is based directly on a vtk filter according to this docs page:
https://www.slicer.org/wiki/Documentation/Nightly/Extensions/ModelToModelDistance

VTK is well documented so you can read the docs for the filter to see what it does.
https://vtk.org/doc/nightly/html/classvtkDistancePolyDataFilter.html

A bit late reply:

  • closest point correspondence does not assume that there is already an established correspondence between the meshes, but generates the correspondence on the fly (matching points as corresponding if the distance is closest across all points).
  • signed means that the sign of the distance (negative vs positive) depends on whether one surface is inside the other (like Lauren mentioned). This is computed relative to the target model, i.e. if the source surface at a given point is inside the target surface then that distance will be negative
  • corresponding_point_to_point: this means that there is already an established, index-wise correspondence (e.g. by using SlicerSALT to generate corresponding surfaces) and the distance is computed between points at the same index in each mesh.
1 Like

I created two models from the sinus of two different CT scans which have been registered in the first step.

Does “model-to-model distance” allow me to create a distance-map (e.g. Distance Map - Blender Market) in order to tell in which directions my models expanded/diminished??

Actually I am looking for a way to create a distance map of two models
or in other words: I would like to get the distance numbers from the colors of the “shape population viewer”.

hello @sfglio just wondering if you were successful in achieving this? I’d like to find a way to tell in which directions my models need expanded/diminished, and if possible, by how much (mm) through the color map. let me know

The question was posted in this topic as well and it is currently being discussed there.

@seanchoi0519 The vtk output file allows nicely to visualize (i.e. color map) the difference between the two models. however I have not found yet a practical approach to quantify the difference in directions between the two models. So I can just tell by judging visually that e.g. the difference between two models was mainly on the inferior side…

You can use Dynamic Modeler module to cut out parts of a model (by drawing a curve on it or defining a ROI box, or cut it with planes), then get the scalar values of this clipped model as a numpy array and compute any statistics you need (average/min/max distance, histogram of thr distance distribution, etc).

1 Like

Thank you for that - makes sense. How do we use SlicerSALT to generate corresponding surfaces in two models?

See SlicerSALT tutorials here. If you have any question then create a new topic for it.

Do the distance of ModetoModelDistance mean as same as Hausdorff distance? Can I use this module for comparing mask model and segmented model? Is its output reliable?