Landmarking Surface Model - File Formats

I am currently using photogrammetry methods to create a model in Meshroom. I then take that model and clean it in MeshLab, where I then export it as an stl file and bring that into 3DSlicer to try and landmark.

  1. I first have placed all my fiducial markups (fixed landmark). I then try to add an open curve markup to the mouth of the individual. I run into two questions here, first, when I go to resample the curve, if I constrain points to the surface of my model, it creates an odd shape.

Curve (image: Curve placed by me.)

Resample_curve (Image: Curve shown in blue after being resampled from the curve I placed.)
To me this tells me that for some reason the mesh I have created extends beyond the visual surface, but I am not sure. Any insight into this may be helpful, as I am not sure if this is something that I can resolve in the model creation step (MeshRoom) or model cleaning step (MeshLab / Slicer).

The second question this brings me to, is if I could use my prior fiducial points as the landmarks for the curve I want. Right now, I would have redundant data in my fixed landmarks with my curved landmarks, outside of the semi-placed landmarks which define the curve. Perhaps more simply asked, could I use my fiducial landmarks, Red 14-Red 2- Red 13, as the markers or indicators for my curve - set in blue in the above images?

  1. In all of this, I would like to also set surface patches on the dorsal region of the skull. I tried doing this in the CreateSemiLMPatches module per listed in our workshop, but I find that the patches keep cutting through the model. Is there a way for me to constrain this to the mesh surface?

The images got messed up somehow - can you try re-posting them?

Thank you! I edited the images, please let me know if this still does not work.

Most people use Slicer for volumetric data. Meshes generated from volumetric scans have two surfaces (an internal and external surface). We implemented a projection option to make sure that we are finding the external surface to move the points on. This is irrelevant for surfaces that are derived from stereophotogrammetry. If you expand the Advanced section in Resample Curve option, you should be able to turn that off (or minimize it), and points will be on the surface like this:


I suspect same problem is happening for the PseudoLMGenerator module, which also has a similarly named setting ‘Maximum projection factor’. Try setting it to zero (or low).

@smrolfe perhaps we might consider a toggle switch for surface vs volumetric meshes?

But more importantly, I think the scale of your input data is wrong. There has been long discussion why STL is a poor format choice on the forum. As I measured, the skull is reported to be 0.1mm long. I suspect that’s not the case. If you can, try exporting the data from your original software in a format that will preserve the scale correctly, such as PLY.

Yes, you can. Create blank curves node (red higlight), then copy and paste your existing anatomical fiducials (blue highlight).

1 Like