Stitching adjacent but not overlapping CT volumes

Operating system: Windows 10 Pro
Slicer version: 5.2

Hi Slicer3D community,

I am pursing a PhD looking into histology to radiology registration process for sarcomas. Enough to say there are multiple considerations that go into this…

This post is about a roadblock. How could we stitch two CT volumes of a femur - focus on reconstructing whole femur back together…
1 - I started with surface registration to get a good transform of bringing the halves together
2 - I am struggling on how to fuse volumes without overwriting bone… I don’t care if we overwrite soft tissue or background signal…

Image attached
1 - Visualising two halves overlaid (but not fused…).png shows bone halves next to each other as we want them…
2 - Fused volumes.png shows overwriting so part of the bone information is gone…

Is there any way of combining volumes to keep all bone signal, while ignoring other parts of the volumes? Potentially using the bone segmentations to tell Slicer what is bone signal and what is not…


You can stitch multiple volumes into one using Stitch Volumes module in Sandbox extension.

Hi Andras, thanks for replying so promptly.

Stitch Volumes was used for computing the FusedHalfVols volume attached and previous. (Unfortunately I am not able to crop volumes as this impacts the organic femoral shape as seen on the green slide in the attached image…)

Attached - two planes of the volume created using Stitch Volumes module in Sandbox.

Question;
Is there a way to tell Slicer which is the important information that must not be overwritten when using Stitch Volumes?

More details. We have a;
1 - lateral half CT volume
2 - medial half CT volume
3 - whole CT volume
Surface Registration of the half CT volume together is neat and tidy - if we can get a fused volume I’m hoping this will register nicely to the whole CT volume.
…I have also dabbled at inverting the problem and surface register each half to the whole volume, however this is less robust/reliable…

Stitch Volumes module could be improved to have an option to support masking: prevent voxel values below a certain threshold from overwriting the other volume.

@mikebind would you have time to implement this or help @phiro753 to do it?

1 Like

Yes, I’m willing to take a look at this and try to implement this feature if it makes sense. I’m a little confused about the nature of the data. I’m not sure why there are image voxels which don’t seem to have image data in them (that’s where the gaps are coming from, if I understand correctly).

2 Likes

Hi Mike,

The image voxels which appear to have no data will be of air in the scan Field Of View. The should have really low HU values.

Attached is a representative value of the air in most scan FOVs

Would it be possible to ignore HU values below XX (user specified) during the stitching operation? This could allow preservation of certain voxels from both volumes in the stitching overlap area, rather than one volume entirely overwriting voxels of the other…

Disclaimer; the title of this tread is slightly misleading as there is some volume stitching overlap in the data I am working with (and future data I anticipate to process with the developed pipeline)…

I do apologise for that last image sorry Mike. Looking back on it I didn’t make the problem very clear…

Essentially my difficulty is that I would like to stitch the two volumes and retain high HU values in both but currently all of one volume has to overwrite the other one. e.g. If I set example image F as Original Volume 1 and image B as Original Volume 2 in the module Original Volume 2 value of -977 (just air) will override the 1144 in the other volume. If I flip the Original volumes in the module around, I have the overwrite issue somewhere else…