Tag (0018,0050) Slice Thickness does not correspond to what I calculate in the image

In the two sagittal slices it can be seen that the difference between one slice and the other is 6.5mm, unlike 5mm as reported in the Tag (0018,0050) Slice Thickness. How is this possible? Which should I consider correct?


Slice Thickness tag does not give any information on where slices are, it just provides some approximate measure of how much the image is focused on the slice plane.

If you want to know distance between neighbor slices then ignore the Slice Thickness tag and use the content of Image Position Patient and Image Orientation Patient tags.

Thanks to reply Andras. But how can I know the distance between slices starting from just this two tags? I probably need where is the origin position? Is there a tag for this?

You have a different Image Position Patient value for each instance (i.e. slice).

Here is an example where spacing is calculated, it may help: SlicerRT/vtkSlicerDicomRtImportExportModuleLogic.cxx at master · SlicerRt/SlicerRT · GitHub


In general, distance between slices cannot be computed because distance between slices may not be equal for each neighboring slices. Slices may not even be parallel, so computing distance between neighbor slices may not be feasible, as you cannot even specify what you mean by neighbor of a slice. Sometimes there are groups of slices in a series that are parallel, with neighbor slices being at equal distances. In some images, you may also find many slices at the same position, and you need to have a look at some other DICOM tags to tell them apart (e.g., they are acquired at a different time, flip angle, cardiac cycle, …). The DICOM standard does not even attempt to specify distance between slices. It is up to each application to deal with this mess.

Most 3D imaging software make assumptions (e.g., all slices are parallel, equal distance from the neighbors, slice normal is parallel to increment vector between slices) and while checking if these assumptions are correct, the constant distance between neighbors is computed as a side product. If no constant distance is found then most software rejects loading the image as a 3D volume.

Slicer’s DICOM importer can load sequences of arbitrarily oriented slices with automatic grouping based on dozens of possible tags, and reconstruct a 3D or 4D Cartesian volume with uniform spacing along each axis. If you need to deal with a wide range of images then I would recommend to let Slicer reconstruct the image for you and use the spacing of this reconstructed image.