Keep the hand-drawn segmentation after interpolation

Hello all. I’m working with a non-isotropic MRI, only the sagittal view with 31 slices. More info can be found in this post: Segmentation using curves . I drew the segmentation on each slice, however, the 3D shape is not smoothed and there are lots of steps and many holes:

One suggestion was to interpolate the slices using Crop module. This ended up with hundreds of slices (e.g., 600), but I don’t want to go through all. I want to interpolate the segmentation as well.

My plane now is to keep the initial hand-drawn segmentation and Fill between the intermediate slices after interpolation. However, my initial segmentation appears in all intermediate slices and the “Fill between slices” doesn’t actually work.

By any chance, is there any way to handle this? (I can draw the segmentation after interpolation, but I cannot find the original slices)

Thank you in advance.

1 Like

Here is a video that better explains the issue.

This also happens even if I draw segmentation on only one slice after interpolation.

With one slice there is nothing to interpolate. THat’s why it simply copies to the next one I suppose. You need to segment every 5-10 slices for fill between slices to work properly.

Thanks for the reply. That’s true. But I want to do segmentation on the original images, then apply it on the interpolated images. Any suggestion? Is there any option to reduce the width of the original segmentation to one interpolated slice?

Using python, you could get the binary labelmap representation of the upsampled segmentation and blank out most of the slices (i.e. just keep the central slice of each upsampled layer, set the others to zeros), then apply the interpolation. For example, if you upsampled 5x, you could keep every 5th slice.

1 Like

Hello all,

I simply resampled the images, and drew the segmentation afterwards on a few slices followed by “Fill between slices“, and the output is good enough. I was wondering if there is any way to resample the segmentation in the same way as volume (e.g., BSpline). I tried some coding, but I didn’t manage to get it working.

Any suggestion? Thanks.

Update: I converted the segmentation to label map. Resample Scalar Volume worked, but the output is not resampled along the slices.