Interpolation Between Slices


I have a CT scan of a head which was acquired with 4mm slices. I am trying to reduce some of the step artefacts in the segment. There seems to not be a very smooth interpolation between the axial slices. If you look in the coronal and saggital slices you can see fairly distinct steps in the volume.

I have tried re-sampling the volume to have isotropic voxels with both the Crop Volume module and the Resample Scalar Volume module. I have tried various interpolation methods: linear, bspline, etc the bspline is slightly better than linear but none improve it particularly. I have tried upping the voxel size all around to 1mm square, this does improve the steps but also looses a considerable amount detail in the segment.

Are there any suggestions to improve the interpolation and reduce these step artefacts in the volume? Usually using making Isotropic voxels works quite well at getting rid of these but this doesn’t seem to work so well on this scan as the steps seem to be in the
actual volume no matter what the voxel size. Perhaps there is some kind of filter which can reduce the steppyness of the volume?

Thanks for reading,

Operating system: Windows 7
Slicer version: 4.10.1
Expected behavior:
Actual behavior:

Extremely sparse volumes, such as yours, are not well suited for 3D reconstruction or analysis. You cannot utilize high in-plane resolution if your slices are so far apart, as there is no information about how to fill the huge 4mm gaps between the slices.

To make the volume less sparse, you can crop volume with “Isotropic spacing” enabled (and increase “Spacing scale” if the volume is getting too big). You may try to further reduce staircase artifact by using Smoothing effect.

Thanks for the reply.

I suppose the best option would be to have a scan protocol which limits the slice spacing to 1mm-2mm or there abouts. However I don’t think this scan was taken with bio-models in mind so I was trying to see what I could do with the data as is.

I may try and see if the volume data is still on the CT scanner. If so they may be able to reslice the data to 1mm slices.

The difficulty I have found with the smoothing effects is that while they get rid of some of the steps they tend to loose a lot of fine detail etc.

Thanks again.

This is exactly the inherent problem with sparse data. You cannot utilize the fine details in the image slice directly, if those details are completely missing in large areas between two slices.

1 Like

I started to implement this Insight Journal Article as an ITK remote module. My github repo is here.

I could attempt to revive it.

Would this algorithm work for grayscale images?

For labelmap interpolation we have already integrated this ITK algorithm. I’m not sure it the method described in the Boydev2012 paper would be significantly better.

Boydev is for grey scale images.

Great. It would be interesting to see how the Boydev method results compare to a simple bspline or sinc image interpolation.

Is there a way to create a sparse volume that has gaps?

I am thinking of using an alpha channel that essentially blanks out slices that are absent?

The use case here is histology slices that have a known thickness ( say 5 microns) and then a 25 micron gap until the next slice?
The problem I see is that the image volume size will explode and be difficult to test on.

Any thoughts on how slicer could be used here or where ITK/VTK would make it easier?

This should be no problem at all. You can create a “mask” segment that only contains the editable regions and then select that segment in Segment Editor / Masking / Editable area. -> Inside Mask segment. To not clutter the viewers, you can hide the mask segment or make it almost completely transparent.