# Does Slicer support this kind of PET-CT registration?

**URL:** <https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354>\
**Category:** Support\
**Tags:** registration\
**Created:** [March 19, 2018, 4:39am UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354 "2018-03-19T04:39:23Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![glhfgg1024](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/glhfgg1024/32/947_2.png) [@glhfgg1024](https://discourse.slicer.org/u/glhfgg1024)\
**Post date:** [March 19, 2018, 4:39am UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354/1 "2018-03-19T04:39:23Z")

</div>

Operating system: Windows 10  
Slicer version: 4.8.0  
Expected behavior: PET-CT registration  
Actual behavior: Not sure

Hi all, I have a this kind of data. For each case/patient, there are the following images:

```
1. CT 
2. PET

3. CT for segmentation
4. DICOM-RT segmentation based on 3

```

The DICOM-RT 4 has the same voxel spacing as that of 3. And it seems 1,2,3 have different voxel spacing (thus they have different number of slices). 1 and 2 have different spatial size, 1 is 512x512 and 2 is 128x128.  
1 and 3 have different number of slices.

Does Slicer support this kind of registration? After registration, it is expected all the images have the same spacing. Thanks a lot! Any comments are greatly appreciated!

---

<div class="post-metadata">

**Author:** ![ihnorton](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ihnorton/32/9_2.png) [@ihnorton](https://discourse.slicer.org/u/ihnorton)\
**Post date:** [March 19, 2018, 1:40pm UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354/2 "2018-03-19T13:40:23Z")

</div>

Generally speaking, yes. CT-CT should work very well; PET-CT can be a bit harder because PET is typically low resolution and has poorly defined skull. Please see the [Registration Case Library](https://www.slicer.org/wiki/Documentation/Nightly/Registration/RegistrationLibrary), especially 8, 14, and 20.

I think most of the examples in the case library use other tools, but Elastix is now available as an extension and may be a good option to try first:

> [@Elastix registration toolbox is now available in Slicer](https://discourse.slicer.org/t/elastix-registration-toolbox-is-now-available-in-slicer/165):
>
> [Elastix](http://elastix.isi.uu.nl/) is a very powerful registration toolbox with lots of advantages over stock ITK registration tools - it has many more metrics, transformation methods, constraints, optimizers, and it comes with a large registration parameter set database, which contains optimized settings for a wide range of registration tasks. This toolbox is now available in Slicer, through the SlicerElastix extension, in the latest nightly builds. Even the default settings work really well for simple (same patient, s…

---

<div class="post-metadata">

**Author:** ![ihnorton](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ihnorton/32/9_2.png) [@ihnorton](https://discourse.slicer.org/u/ihnorton)\
**Post date:** [March 19, 2018, 1:42pm UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354/3 "2018-03-19T13:42:28Z")

</div>

Also, note that PET/CT scanners are often combined. So your 1-2 may be from the same scanner, in which case the images may already be implicitly aligned. Then you would only need to register 1 to 3.

---

<div class="post-metadata">

**Author:** ![glhfgg1024](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/glhfgg1024/32/947_2.png) [@glhfgg1024](https://discourse.slicer.org/u/glhfgg1024)\
**Post date:** [March 19, 2018, 1:53pm UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354/4 "2018-03-19T13:53:18Z")

</div>

Hi @ihnorton , greatly appreciated for your kind answer and suggestions!  
Thanks a lot! I’ll try that.

I don’t know why the doctors contour on 3, not 1. Then we don’t need the registration. And for each CT, the patient will be injected the tracer once, which would harm the patient again.

---

<div class="post-metadata">

**Author:** ![glhfgg1024](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/glhfgg1024/32/947_2.png) [@glhfgg1024](https://discourse.slicer.org/u/glhfgg1024)\
**Post date:** [March 19, 2018, 7:41pm UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354/5 "2018-03-19T19:41:29Z")

</div>

Hi @ihnorton, I have another problem.

I have registered 1 to 3 and generated a transform. Then I used the transform to register 2 to 3. But the spatial size of 1 and 2 are not the same, e.g., 512x512 versus 128x128. I’m not sure how to do next. Could you please help give some hints? Thanks a lot!

The SlicerElastix will generate a transform. I think we cannot use this transform directly, right? We should first resample 2 to the same spatial size as 1, right?

---

<div class="post-metadata">

**Author:** ![ihnorton](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/ihnorton/32/9_2.png) [@ihnorton](https://discourse.slicer.org/u/ihnorton)\
**Post date:** [March 19, 2018, 9:46pm UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354/6 "2018-03-19T21:46:12Z")

</div>

> [@glhfgg1024](#):
>
> The SlicerElastix will generate a transform. I think we cannot use this transform directly, right?

If you put the `Moving` volume under the transform (“Transforms” module), then the images will be comparable _within Slicer_; for example in the 2d and 3d views. I’m not sure if SlicerElastix will automatically put the volume under the new transform.

Otherwise, I believe if you select “Create New Volume” for the “Output Volume” field then Elastix will resample into the space of the `Fixed` image. See comments in the README here:

> **[GitHub - lassoan/SlicerElastix: This extension makes available Elastix...](https://github.com/lassoan/SlicerElastix)**
>
> This extension makes available Elastix medical image registration toolkit (http://elastix.isi.uu.nl/) available in Slicer. - GitHub - lassoan/SlicerElastix: This extension makes available Elastix m...

(I haven’t used the module very much yet – probably `@lassoan` will comment with any corrections/suggestions when he sees this, within a few days)

---

<div class="post-metadata">

**Author:** ![glhfgg1024](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/glhfgg1024/32/947_2.png) [@glhfgg1024](https://discourse.slicer.org/u/glhfgg1024)\
**Post date:** [March 19, 2018, 10:09pm UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354/7 "2018-03-19T22:09:48Z")

</div>

Yeah, got it! Thanks a lot!

---

<div class="post-metadata">

**Author:** ![glhfgg1024](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/glhfgg1024/32/947_2.png) [@glhfgg1024](https://discourse.slicer.org/u/glhfgg1024)\
**Post date:** [March 20, 2018, 3:41pm UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354/8 "2018-03-20T15:41:02Z")

</div>

Hi @ihnorton, I think I do the right thing.

I first resample the PET(128x128) to CT(512x512), the using the obtained transform (from SlicerElastix) to get the registered PET. Then it seems the PET and CT are both co-registered with the segmentation.

Thanks a lot for your kind advice!

---

<div class="post-metadata">

**Author:** ![MSC19950601](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/msc19950601/32/2713_2.png) [@MSC19950601](https://discourse.slicer.org/u/MSC19950601)\
**Post date:** [December 11, 2018, 8:57am UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354/9 "2018-12-11T08:57:03Z")

</div>

How to resample the PET volume?

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [December 11, 2018, 11:48pm UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354/10 "2018-12-11T23:48:37Z")

</div>

You can use “Resample scalar/vector/dwi volume” module.

---

<div class="post-metadata">

**Author:** ![MSC19950601](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/msc19950601/32/2713_2.png) [@MSC19950601](https://discourse.slicer.org/u/MSC19950601)\
**Post date:** [December 19, 2018, 3:28pm UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354/11 "2018-12-19T15:28:10Z")

</div>

Could you give more details or tutorial about PET-CT co-registration?

---

<div class="post-metadata">

**Author:** ![sandigeeup](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/sandigeeup/32/13722_2.png) [@sandigeeup](https://discourse.slicer.org/u/sandigeeup)\
**Post date:** [January 11, 2022, 2:43am UTC](https://discourse.slicer.org/t/does-slicer-support-this-kind-of-pet-ct-registration/2354/12 "2022-01-11T02:43:10Z")

</div>

When you have 3 data sets, e.g ct, pet and MRI for registration, do you do this before you do any volume rendering or segmentation, how does it work, what order registration if sets 1st or segmentations/ rendering?
