Operating system: Windows 7
Slicer version: 4.8.1
I am working with MRI data (.nii or NIFTI format, 8 slices) and trying to calculate the volume of a particular segment in each slice where it appears. For each slice, I am using the segment editor to make a segment for the area of interest (using threshold for masking and then paint), exporting it to a labelmap, and then using model maker to make a model of that label. From there, I can view the volume under the Models menu, under “Information”.
I am wondering if/how 3D slicer takes into account the slice thickness (specified by the DICOM header in the original DICOM directory) when performing this volume calculation, and if this slice-by-slice method will be an accurate way to calculate the entire volume (i.e. does it interpolate between slices when calculating the volume, or does it only calculate the volume for the specified slice?)
Any information on this would be fantastic! Thank you.
You can measure segment surfaces and volumes from much easier, using Segment Statistics module.
It takes into account when constructs a 3D image from slices.
Yes, it is. It accurately quantifies the volume that you see. If that representation is accurate then the measured volume and surface will be accurate, too.
thank you, this helps a lot. I was also wondering, does 3D Slicer know to exclude the gap between slices when calculating the volume (i.e. the MRI data I am working with has a slice thickness of 1mm and a distance between adjacent slices of 1mm)?
DICOM defines the exact position of each image slice, so geometry can be reconstructed accurately. Slice thickness just defines image blurring (thickness of the region that is averaged to generate the image slice) and has no effect on the reconstruction.
So say the segment being calculated is approximately an ellipsoid (volume = (4/3)piabc, where c is the thickness of the slice (not including the gap between slices). Does 3D Slicer use the Slice Thickness used during imaging to calculate the volume of this type of segment?
Which method is more accurate, Segment Statistics, or constructing the model like I have been doing?
Accuracy of measured volume primarily depends on how accurately you segment the structures.
We report surfaces and volumes of the structures that you see, as you see, very accurately (the error is probably less than 0.001%).
Some smoothing is applied during labelmap to closed surface conversion, so there is typically a small volume difference there (typically well below 1%). But again, you can see both representations exactly and based on that you can decide which value to use.
There are no gaps between slices. If you want, you can leave gaps in the segmentation but then you will very clearly see them so you you do not have to worry about accidentally having some gaps that affect the results.
Segment Statistics computes the same volumes for the same inputs, but it is more convenient to use. It relies on Segmentations module to convert between labelmap and closed surface representations, so the generated surface may be slightly different compared to model maker.
Thank you. Just to clarify, the error is probably less than 0.001% for both methods?
Yes, you get the volume of the segmentation or model node what you see very accurately.
So if I measure volume of some slices, using segment static,I don’t need to multiply the slice thickness to total volume?
No, the volume measurements calculated by Segment Statistics are not only in voxels, but also in mm3 and cc, see header of the resulting table:
thanks for your response. Actually, I am so struggling, I’ve tried to compare 3Dslicer result with another manual programme but the result doesn’t match. our MRI images with slice thickness 5 mm and space 5mm. so how I can add this values to my segmentation?
then when I have tried to meagre the slices, the same calculation I have got when I missed 2 slices gab?
The stripes on the image indicate that you are looking at the preview of “Fill between slices” effect result.
Click “Fill between slices” effect button and click “Apply” to complete the segmentation.