Issue converting NRRD file to PLY file

Hello,

I am having a new issue when converting and opening saved files and hoping for some troubleshooting advice.

In the past, I have segmented out heads and jaws within one large file, and saved them individually from the large file as a model as a PLY file and they are able to be visualized as a smooth looking surface. Now I have recently been creating separate files by creating individual volumes for each fish head and saving them as NRRD files. I then have been segmenting out the jaws from the NRRD files and saving them as PLY files. When this is done, the PLY files looks textured with a stripped pattern.

Photo of how the converted NRRD to PLY looks in slicer → https://file.io/ddfdQdOHlFkT

I was wondering if anyone had any idea what upload settings could be adjusted to fix this new issue. I have uploaded two files below, one is the technique that I was doing that yielded smooth models and the new “textured looking” models.

Old PLY file that appears smooth → https://file.io/rXMEdVTCM9ST
New PLY file that appears textured from NRRD → https://file.io/V2xMXnayjsZs

Thanks for the help!

Hi @muratmaga and @lassoan,

Just wondering if you have any ideas about what’s happening here? I imagine it’s something simple, but we’re pretty confused!

Thanks!
Dave


Here is an image of what converted NRRD to PLY files looks like.

With this much information it is hard to tell what might be the issue? Did you change Slicer versions between these? If you did, and when you try to process the old data with new Slicer are you still getting these wave effects? What are the versions of Slicer you are using?

I am trying to understand whether that’s a workflow/data issue (that you have changed something on your end), or Slicer issue…

You see the woodgrain pattern, because rendering of shadows is enabled (that was a feature introduced recently) and size scale is set so that the slight waves of the surface are emphasized. You can turn off shadows display or change size scale in the view controller (appears when you click the pushpin icon). You turn it off by default in Application settings / Views.

You can also tune steength of surface smoothing in the dropdown menu of the Show 3D button.

Thanks for the help!

@lassoan, I don’t think it’s a problem with the rendering in Slicer because we get similar results if we load the files into MeshLab (new method on the left, old method on the right):

One thing that I did notice in MeshLab is that the old models (normal) are solid while the new ones (bad rendering) are hollow. I don’t think we changed anything about our exporting process that would cause this, but you can see out methods in more details below.

@muratmaga, That’s a good point, we did change Slicer versions. The ones that come out strangely are done on 5.6.2. The old ones are from 5.2 (I’m not sure which sub-version). When I load an old file (initially imported and segmented in 5.2) into our current version of slicer (5.6.2) it looks normal. I can create new models from segments and they also look normal.

However, we also changed our methodology-

Previously we:

  • Loaded in CT scans of 6-12 individuals through the ImageStacks module
  • Segmented individual fish and individual bones using a variety of tools (thresholding, eraser, flood fill)
  • Exported the models from the data tab (right click → Export visible segments to models).
  • Save files as .ply

More recently we have been:

  • Loading in CT scans of 6-12 individuals through the ImageStacks module
  • Create an ROI for each individual fish in the scan, surrounding that individual as closely as possible
  • Use the “Crop Volume” Module to create a new volume for each ROI (I tried changing each of these settings and nothing fixed the problem)
    • Fill value = 0
    • Interpolated cropping = True
    • Spacing scale = 1
    • Isotropic spacing = True
    • Interpolator = Linear
  • Save each volume as NRRD file
  • Individually load each NRRD file, segment export exactly the same as before.
  • Note: the issue shows up specifically when we click “Export visible segments to models”. The models look totally fine when we use “Show 3D” in the Segment Editor module.

So the two main differences are the version of slicer and the incorporation of the Crop Volume module into our workflow. Could either of these explain the difference in results?

If the 3D view from the segmentations is fine, can you try going to Segmentations module, scroll down to Export/Import Models and Labelmaps and choose to export a new model.

and see if it has those artifacts.

image

Can you post here slice views of the old (solid) and new (hollow) segmentations?

What is the spacing of the binary labelmap representation in of the old and new segmentation? (you can see that in the data module if you expand the information section in the bottom left corner)

I think we figured it out!

In 5.6.2 we’ve been using “Use surface nets (fast)” for our 3d representations of our segmentations.
If I leave this option checked when I export the model (even through the “segmentations” module) then the resulting model is lower resolution and has these strange artifacts. If I turn surface nets off, then it exports perfectly normally.

I’m not sure if this is the expected behavior, but I did not realize that surface nets would affect the exported model and not just the “show 3D” representation.

This is interesting. I have been using the surfacenet option for smoothing without any noticeable difference in 3D models (compared to standard method). Are you sure you have not changed anything other than that in processing pipeline?

I’m fairly sure that this is the issue (and not our pipeline) because I can now create good and bad models from both new and old segmentations simply by toggling this switch. So even segmentations that were done on our older version of slicer can create models with artifacts if I turn on surface nets.

I’m happy to post any information about our Slicer instance if that helps understand why it’s happening.

Just to follow this up, I just tried again on a different computer using 5.7.0 and I get the exact same behavior when exporting with surface nets turned on/off.

1 Like