Segmentation of mrml file in different machine have different resolution


I tried to segment the same mrml file in 2 different computers (created file in machine 1 and copied to machine 2 before segmenting) and the segmentation resolution if different between those machines.
Machine 1: pixel size of 0.40.4mm (Slicer 4.8.0)
Machine 2: pixel size of 0.9
0.9mm (Slicer 4.8.1 and 4.8.0 - tried both versions to see if it was a version issue).

What do you think creates this issue and how do you suggest us to solve it?


Interesting. Can you please give us a few other details?

  • When you say you want to segment a MRML file it means that you loaded a volume on computer 1 and saved the MRML scene (mrb or mrml in a folder) and that’s what you load on computer 2?
  • Do you use Segment Editor?
  • How do you check the resolution of the segmentation? Asking because if you use Segment Editor, then the segmentations don’t show up in Volumes module


Thanks for helping, here go some more details:

  1. In machine 1, I imported the dicom into slicer from folder X. Created the mrml file and then copy folder X into machine 2 and open the mrml from that folder.

  2. Yes, we use segment editor.

  3. I checked the resolution by measuring the size of the “squares”/pixel I get after segmenting using a ruler.
    Here’s an example:

  4. I tried using the crop volume, but in machine 2 it doesn’t change the resolution much/ never gets as good as in machine 1.

I don’t understand why this step is even necessary if you copy folder X anyway (which shouldn’t be necessary if you already have a saved MRML scene). Can you please explain it to me how you “created the mrml file”?

We did that to save the time of loading all dicom, align them and save each scene.
So the person using machine 2 could have a ready to go file. We have different people using the same mri for different things.
I created the mrml file using the save option (manually).

1 Like

simply save the files as .nrrd (the original image and the segmentation), you will have to copy 2 files only to the other machine.

The issue is not that we want to use the same segmentation. We are highlighting different structures, but in the process, we realize that our machines have different resolutions for the same image set.
Is there isn’t a “solution” for this, we might need to just create a mrml in each machine.

highlighting different structures

you can do it using the segmentation (.seg) file by adding new segment for the different structure. Just wondering, do you have the same problem when using the Editor (the old module for segmentation)? if yes, It is not clear what you are doing, the best way to explain it is to record a short video of what you did and send the links. If no, then try to export the segmentation to a labelmap then import it in a new segmentation in the the new machine.

You mention that you need to align multiple images (aka. register them together). This means you have multiple volumes to segment. Are you sure you choose the right master volume in Segment Editor?

To verify this, please go to Volumes module after loading the MRML scene, and check the voxel spacing for each volume. If one is 0.4mm and another 0.9mm, then it’s possible that simply the wrong one was used. Segment Editor makes the segmentation the same resolution as the first (!) master volume you selected. So if you select one, then change it to another, it will still have the resolution of the first one.

Yes, we’re sure we are using the same master volume.
Just opened and measure the pixel size for a couple different mrml files, and machine 2 has always worse quality than machine 1.

We decided to create a new file when the person that uses machine 2 needs to work on the files.
However, this is an “interesting” “bug” and if you find a way to avoid this it will be highly appreciated.


@Masteling are you sure the pixel size is different and not just the display? If the slice display is rotated compared with the segmentation the voxels may appear different sizes.

Do you have a way that we can replicate this with the sample data?

Segmentation uses the first selected master volume to decide what will be the voxel size of the internal labelmap in the segmentation node. If you go to Segment Editor and a volume was selected by default and you select another one, it is already too late. You need to delete the segmentation node and create a new one, and select the correct volume as master volume.

We know that it is not intuitive, but not yet have the time to add GUI to force changing the internal geometry for an existing segmentation.