# Normalization SUVPET

**URL:** <https://discourse.slicer.org/t/normalization-suvpet/7777>\
**Category:** Support\
**Tags:** pet\
**Created:** [July 26, 2019, 8:28pm UTC](https://discourse.slicer.org/t/normalization-suvpet/7777 "2019-07-26T20:28:57Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mgi](https://avatars.discourse-cdn.com/v4/letter/m/b19c9b/32.png) [@Mgi](https://discourse.slicer.org/u/Mgi)\
**Post date:** [July 26, 2019, 8:28pm UTC](https://discourse.slicer.org/t/normalization-suvpet/7777/1 "2019-07-26T20:28:57Z")

</div>

Dear,

How to normalize some PET images by SUVmax using the PETDICOM extension?

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [July 29, 2019, 4:52pm UTC](https://discourse.slicer.org/t/normalization-suvpet/7777/2 "2019-07-29T16:52:25Z")

</div>

Once you install DICOM PET extension, you should be able to load the DICOM PET series SUV-corrected by selecting the PET series in DICOM Browser, and loading it.

To calculate SUVmax, you will need to segment the region of interest, which you can do using Segment Editor module. Once you have segmentation ready, you can use [PET-IndiC extension](http://qiicr.org/tool/PETIndiC/) to calculate SUVmax for that region.

Note that Indi-C extension is not building at the moment for the nightly, you will need to use the latest stable build to access that functionality.

I am not sure though if we have a module to divide the image by SUVmax constant to do the normalization. I thought SimpleFilters can do this, but it looks like they only support operations between images, and not scaling image by constant. @blowekamp am I correct?

cc: @chribaue

---

<div class="post-metadata">

**Author:** ![blowekamp](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/blowekamp/32/1386_2.png) [@blowekamp](https://discourse.slicer.org/u/blowekamp)\
**Post date:** [July 29, 2019, 5:56pm UTC](https://discourse.slicer.org/t/normalization-suvpet/7777/3 "2019-07-29T17:56:09Z")

</div>

> [@fedorov](#):
>
> I thought SimpleFilters can do this, but it looks like they only support operations between images, and not scaling image by constant. @blowekamp am I correct?

In Python the SimpleITK filters are certainly able to multiply by a constant, but this functionality is not currently exposed in the SimpleFilter GUI module.

---

<div class="post-metadata">

**Author:** ![Mgi](https://avatars.discourse-cdn.com/v4/letter/m/b19c9b/32.png) [@Mgi](https://discourse.slicer.org/u/Mgi)\
**Post date:** [July 29, 2019, 6:16pm UTC](https://discourse.slicer.org/t/normalization-suvpet/7777/4 "2019-07-29T18:16:53Z")

</div>

Thank you!

@fedorov When I load the DICOM PET series appear this message window: “Could not load (SUVbw) as a PET SUV plugin”.

---

<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:** [July 29, 2019, 6:27pm UTC](https://discourse.slicer.org/t/normalization-suvpet/7777/5 "2019-07-29T18:27:40Z")

</div>

For simple arithmetic operations, such as applying an arbitrary function to each voxel value, you may also use numpy. You can get read/write access to voxel values as a numpy array as shown [here](https://www.slicer.org/wiki/Documentation/Nightly/Developers/Python_scripting#Accessing_Volume_data_as_numpy_array).

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [July 30, 2019, 3:05am UTC](https://discourse.slicer.org/t/normalization-suvpet/7777/6 "2019-07-30T03:05:14Z")

</div>

Just wanted to confirm there is no UI module for this functionality. Thanks @blowekamp and @lassoan

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [July 30, 2019, 3:05am UTC](https://discourse.slicer.org/t/normalization-suvpet/7777/7 "2019-07-30T03:05:55Z")

</div>

> [@Mgi](#):
>
> When I load the DICOM PET series appear this message window: “Could not load (SUVbw) as a PET SUV plugin”.

Can you share deidentified dataset?

---

<div class="post-metadata">

**Author:** ![Mgi](https://avatars.discourse-cdn.com/v4/letter/m/b19c9b/32.png) [@Mgi](https://discourse.slicer.org/u/Mgi)\
**Post date:** [July 30, 2019, 5:56pm UTC](https://discourse.slicer.org/t/normalization-suvpet/7777/8 "2019-07-30T17:56:22Z")

</div>

@fedorov Yes, could I send to you for e-mail? because in this post doesn´t possible

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [August 2, 2019, 2:38am UTC](https://discourse.slicer.org/t/normalization-suvpet/7777/9 "2019-08-02T02:38:21Z")

</div>

I received the dataset, and I can reproduce the problem, but I don’t have a quick answer. For some reason it fails at the GDCM level. I also will need to build Slicer to debug this, I don’t have a built version right now.

@chribaue do you have any suggestions? If you have a compiled Slicer, could you investigate this?

```auto
itk::ExceptionObject (0x7f8051b2eb40)
Location: "unknown" 
File: /Volumes/Dashboards/Stable/Slicer-4102-build/ITK/Modules/IO/GDCM/src/itkGDCMImageIO.cxx
Line: 233
Description: itk::ERROR: GDCMImageIO(0x7f8051b068a0): Failed to get the buffer!

```
