I’m trying to understand how resampling may change my volume outcome that’s generated by segment statistic to mitigate error as I’m structuring my segmentation method, so I would greatly appreciate some input and help!
Because physical volume doesn’t change so technically when I resample a CT (lets say from a finer 1mm slice to a thicker slice 3mm slice - and how I do it is by inputting the spacing as [0,0,3] from [0,0,1] - and if this is the correct way to do it), when I apply the same segmentation, it should give me roughly the same volume outcome in cm3
However, I do notice some very slight differences in volume after applying segmentation done on a 1mm slice CT to the same CT however resampled to 3mm slices. Am I correct to say that the differences between the volume outcome generated by segment statistic is due to the changes in resolution(reduce in resolution) at the sagittal plane of the CT (corresponding to the Z-axis), so over the edges between two different tissues, higher resolution, finer slices, smaller voxels might be able to pick up the tissue slightly better?
Does it mean it would be more accurate for me to resample the CT first before segmentation ?
Which ResampleScalarVolume interpolation should I select to give me the most accurate outcome post resampling?
These are very simple experiments you can run in Slicer on your own and find the specific answers very easily on your own.
Use the ImageMaker to create a volume of 128x128x128 grid with spacing 1mm. Segment a sphere of radius 20mm, calculate its ssegmnet statistics. Then resample this volume in they ways you would like to do and repeat the procedure (and the experiments you would like to investigate) and find the definite answers.
Hi Muratmaga, Yes I did run an experiment on one of the DICOMs, I’ve already segmented the CT at 1mm slice thickness, then resampled it to 3mm thickness and re-applied the same segmentation to calculate the volume. The results are roughly the same with slight differences, and this is regardless of what interpolation I’m using (some suggest linear and other tutorials suggest bspline). I’m just trying to find an explanation as to why there is discrepancy given the physical volume is the same, is it because of changing the spacing changes resolution? and whether resampling prior to post segmentation would change the outcome (I’m yet to have done that experiment)
Hi Pieper, thanks for helping! Here are the volume differences that are captured by applying the same segmentation (segmentation done using total segmentation +manual slice by slice correction on the 1mm CT scan) to both 1mm CT scan and 3mm CT scan (re-sampling from 1mm to 3mm is done by using resamplescalar volume inputting the spacing as [0,0,3] from [0,0,1])
I wonder if the differences in the final statistics are due to the reduction in the number of voxels (given greater spacing)hence lower resolution resulting in the edges at the sagittal(corresponding to the z-axis) plane not being picked up properly like the following picture
And whether using different resample interpolation or whether resample before v.s. after segmentation would change the outcome?
A bit of a background of my project, I’m currently using total segmentator to calculate abdominal muscle volume but a few muscle groups are poorly segmented (e.g. TA or psaos or iliacus)hence requiring manual correction slice by slice, and it is quite a painful job if the CT comes in 1mm slices, and obviously with the voxel spacing differences, it will introduce error to the calculated volume, so I’ve just been trying to improve my method/approach to segmentation. Thanks again for your input! I greatly appreciate this
Thanks for the screenshots and the extra information. If you look at the volume calculations in the two versions of segment statistics you can see that the change is very minimal (like a fraction of a percent) so I think if you are doing manual correction the thicker slices are fine. As long as you are doing resampling and not just editing the spacing in the volumes module the physical-space measurements should be similar (i.e. you get different voxel counts but similar volumes in cm^3).
Regarding correction, I’ve found that the results of TotalSegmentator can be fed i to nnInteractice and for many structures you get a vastly improved segmentation with just a few clicks. The image below shows what happened when I applied this technique to a few segments on the right side of the body. Before using nnInteractive they looked like the corresponding structures on the left. Note that not all anatomy behaved well with this approach, so you might need to provide some additional positive and negative inputs to constrain the process.