Digitizing semilandmarks


Does anyone know if there is a way to digitize equally spaced semilandmarks over (and constrained by) a selected area of a surface mesh? In other words, can I ‘paint’ or ‘highlight’ the faces of a surface mesh over which SlicerMorph could place equally spaced (surface) semilandmarks? Currently, I use Viewbox software to do this and, I must admit, this is the one feature that makes it difficult for me to abandon. It makes the generation of a template fast and easy, and it provides a lot of flexibility in the placement of surface semilandmarks.


Yes, you first manually draw a curve, and then use the resampling function of the curveMarkup to specify the number of equidistant point (with or without constraining to the surface).

For more details see the tutorial:

Tutorials/Markups_2 at main · SlicerMorph/Tutorials · GitHub

@muratmaga Thanks for this. I was wondering about digitizing surface semilandmarks. For example, can you specify an area, rather than a curve, over which to generate semilandmarks? I know that PseudoLMGenerator can be used to digitize a large number of landmarks that can then be removed. But is it possible to constrain the generation of pseudo-landmarks over a number of painted or highlighted faces of a mesh rather than using the entire mesh? That would really speed up the process of digitizing surface semilandmarks. If that was possible, then I could quickly add a specified number of equally spaced landmarks over a surface of my choosing, or multiple surfaces (such as the different articular surfaces of a tarsal or a carpal). Thank you!

But then how do you know what’s the corresponding vertex in the next mesh? What if the mesh densities are different?
To my knowledge, this usually done by drawing a polygon shape on the mesh manually and subdividing through some sort of a grid, so that when you are sampling on a new mesh, the grid structure allows for correct correspondence.
All the necessary pieces are available in slicer (see surface markups extension), but it needs to be optimized by someone who are familiar with this workflow more carefully. GitHub - SlicerHeart/SlicerSurfaceMarkup: Extension to test the new grid surface markup with

Thanks @muratmaga! The function I’m describing is implemented in dhal Viewbox software. I just wanted to confirm that it was not possible in SlicerMorph before giving up!

There is no such thing as not possible in 3D Slicer. It is a matter of someone putting the time and resources in the making it happen. We find the tools within 3D Slicer and SlicerMorph to be sufficient for the types of analysis we do.

If you are missing a specific function, instead of opting for commercial software for it, you can consider hiring the people (e.g., on this forum, or locally) to develop the tool you are missing, and contribute back to the community. It might be cheaper than buying licenses of viewbox. Just a thought.

1 Like

Hi, I came across this thread while i was looking for ways to place semi landmarks uniformly on dental casts to evaluate the shape of human palate. I have 19 landmarks and I would like to add some semi landmarks uniformly across the palate within the anterior, posterior and lateral confines of the landmarks. Any leads?

Thank you.

Did you give the CreateSemiLMPatches module a try?

1 Like

Thanks @muratmaga, I am trying to fit triangles on the palate to record its shape. However, there is some overlap in the middle, do you think it is a problem?
I am working on different triangular configurations to best record the palate; I will let you know the final outcome.

Yes, that would be concerning. You should use smaller and non-overlapping triangulations.

1 Like

Thanks for your feedback. Here is a new configuration to minimize overlap. There is no overlap, but some parts of the palate could not be recorded.

During the merging of semi-landmarks you can optionally create a set of average positions between the boundaries of patches. That will fill the gap some.

1 Like

Thanks @muratmaga, I have created a landmarks-merged node. Next step is to place the semilandmark patches on other models. Will let you know, how it goes.

1 Like

This is the final outcome (palatal morphology) using the fixed and semilandmarks. While this may not be directly related to this thread, I am wondering how I can measure the volume and area of the palate. Is there a specific module in Slicer for this?
Thank you in advance.

This looks a like a sufficiently good template to me. Good luck.

For measuring volumes you will need to do segmentation. You can possibly get by measuring the area via drawing the closed curves. However, thats the area of the closed curve and if that plane doesn’t closely follow the surface of the model, there will be some difference. Otherwise, you will need to segment the surface.

1 Like