When I load a labeled segmentation, the colors on the rendered volume shows up differently from the original. What am I doing wrong?
Labelmap volumes do not store segment names or colors. You need to select a color table that defines name and color for each label value.
What is your complete workflow? Do you have a color table for your labelmap volume?
Thank you! I figured it out based on what you said.
Is there a way to permanently add a color table to the built-in list and/or set it as the default? Or do I have to upload the ctbl file each time I load a labelmap?
You only need to load a color table into the Slicer scene once, when you import the labelmap into segmentation. Then you can just use segmentation, which takes care of maintaining all the segment names and colors, even if you split and merge segments or move them around across different segmentations, even if segments overlap. None of these can be done using static color tables.
You can access all the segmentation labels and metadata stored in a segmentation .nrrd file from Python using slicerio in any Python environment. We participate in development efforts for creating modern file formats biomedical imaging (OME-Zarr) and will provide converters to/from this file format in Slicer in the near future. So, it should not be necessary to go back to static color tables ever again.