# How can I generate and save volume rendered images of brain arteries

**URL:** <https://discourse.itk.org/t/how-can-i-generate-and-save-volume-rendered-images-of-brain-arteries/4575>\
**Category:** Beginner Questions\
**Tags:** nifti, python\
**Created:** [November 14, 2021, 7:45pm UTC](https://discourse.itk.org/t/how-can-i-generate-and-save-volume-rendered-images-of-brain-arteries/4575 "2021-11-14T19:45:13Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Aleena\_Suhail](https://discourse.itk.org/user_avatar/discourse.itk.org/aleena_suhail/32/2335_2.png) [@Aleena\_Suhail](https://discourse.itk.org/u/Aleena_Suhail)\
**Post date:** [November 14, 2021, 7:45pm UTC](https://discourse.itk.org/t/how-can-i-generate-and-save-volume-rendered-images-of-brain-arteries/4575/1 "2021-11-14T19:45:13Z")

</div>

how can I generate and save images that are in nii (nifti) format into volume rendered image using simpleITK

---

<div class="post-metadata">

**Author:** ![zivy](https://discourse.itk.org/user_avatar/discourse.itk.org/zivy/32/1726_2.png) [@zivy](https://discourse.itk.org/u/zivy)\
**Post date:** [November 14, 2021, 7:51pm UTC](https://discourse.itk.org/t/how-can-i-generate-and-save-volume-rendered-images-of-brain-arteries/4575/2 "2021-11-14T19:51:23Z")

</div>

Hello @Aleena_Suhail,

Not clear what it is that you want to do. There is no “volume rendered” image in ITK or SimpleITK. You have an image file, in a variety of formats, and you have an image in memory.

I am guessing here that you want to read a nifti volume from file and display it using volume rendering. For that functionality, see [itkwidgets](https://github.com/InsightSoftwareConsortium/itkwidgets).

If this is not what you want, please be more specific.

---

<div class="post-metadata">

**Author:** ![Aleena\_Suhail](https://discourse.itk.org/user_avatar/discourse.itk.org/aleena_suhail/32/2335_2.png) [@Aleena\_Suhail](https://discourse.itk.org/u/Aleena_Suhail)\
**Post date:** [November 14, 2021, 7:53pm UTC](https://discourse.itk.org/t/how-can-i-generate-and-save-volume-rendered-images-of-brain-arteries/4575/3 "2021-11-14T19:53:35Z")

</div>

I wish to visualise and save 3D MRI image in 2D using volume rendering technique how can I do this using SimpleITK

---

<div class="post-metadata">

**Author:** ![zivy](https://discourse.itk.org/user_avatar/discourse.itk.org/zivy/32/1726_2.png) [@zivy](https://discourse.itk.org/u/zivy)\
**Post date:** [November 14, 2021, 8:13pm UTC](https://discourse.itk.org/t/how-can-i-generate-and-save-volume-rendered-images-of-brain-arteries/4575/4 "2021-11-14T20:13:13Z")

</div>

Got it.

So itkwidgets should work for that. The `view` has a variety of parameters you will need to play with. This assumes you are working in a Jupyter notebook. If you are looking for a more turnkey and medically oriented visualization with good/standard preset rendering parameters I’d recommend using Slicer (see [documentation](https://slicer.readthedocs.io/en/latest/user_guide/modules/volumerendering.html)).

```auto
import SimpleITK as sitk
import itkwidgets

image = sitk.ReadImage('training_001_mr_T1.mha')
itkwidgets.view(image, cmap=itkwidgets.cm.gray)

```

---

<div class="post-metadata">

**Author:** ![Aleena\_Suhail](https://discourse.itk.org/user_avatar/discourse.itk.org/aleena_suhail/32/2335_2.png) [@Aleena\_Suhail](https://discourse.itk.org/u/Aleena_Suhail)\
**Post date:** [November 14, 2021, 9:33pm UTC](https://discourse.itk.org/t/how-can-i-generate-and-save-volume-rendered-images-of-brain-arteries/4575/5 "2021-11-14T21:33:17Z")

</div>

Thank you  
the following code runs but I cannot visualise or save the image can you please help me with how I can amend the code to visualise the image on Google Colab and save it

import itkwidgets

import SimpleITK as sitk

image = sitk.ReadImage(’/content/drive/MyDrive/3D/10001/10001\_TOF.nii.gz’)

itkwidgets.view(image, cmap=itkwidgets.cm.gray)

---

<div class="post-metadata">

**Author:** ![zivy](https://discourse.itk.org/user_avatar/discourse.itk.org/zivy/32/1726_2.png) [@zivy](https://discourse.itk.org/u/zivy)\
**Post date:** [November 15, 2021, 2:34am UTC](https://discourse.itk.org/t/how-can-i-generate-and-save-volume-rendered-images-of-brain-arteries/4575/6 "2021-11-15T02:34:57Z")

</div>

Hello @Aleena_Suhail,

What exactly is the problem?

If the code runs without errors, you should see something. It may not look correct due to the transfer function settings, but that just means you need to modify those to get a good visualization.

If this is not the case, then please be more specific about the problem. What error message are you getting, etc.

---

<div class="post-metadata">

**Author:** ![dzenanz](https://discourse.itk.org/user_avatar/discourse.itk.org/dzenanz/32/1093_2.png) [@dzenanz](https://discourse.itk.org/u/dzenanz)\
**Post date:** [November 15, 2021, 1:58pm UTC](https://discourse.itk.org/t/how-can-i-generate-and-save-volume-rendered-images-of-brain-arteries/4575/7 "2021-11-15T13:58:10Z")

</div>

What she probably wants is something like:

```auto
view3d = itkwidgets.view(image, cmap=itkwidgets.cm.gray)
rendered3D = view3d.screenshot()
sitk.WriteImage(rendered3D, '/content/drive/MyDrive/3D/10001/10001_TOF.png')

```

And `.screenshot()` function probably does not exist.

---

<div class="post-metadata">

**Author:** ![Aleena\_Suhail](https://discourse.itk.org/user_avatar/discourse.itk.org/aleena_suhail/32/2335_2.png) [@Aleena\_Suhail](https://discourse.itk.org/u/Aleena_Suhail)\
**Post date:** [November 16, 2021, 1:42pm UTC](https://discourse.itk.org/t/how-can-i-generate-and-save-volume-rendered-images-of-brain-arteries/4575/8 "2021-11-16T13:42:27Z")

</div>

> [@dzenanz](#):
>
> ```auto
> view3d = itkwidgets.view(image, cmap=itkwidgets.cm.gray)
> rendered3D = view3d.screenshot()
> sitk.WriteImage(rendered3D, '/content/drive/MyDrive/3D/10001/10001_TOF.png')
> 
> ```

Yes, what can I use instead of screenshot the following code is giving me an error  
image = sitk.ReadImage(‘/content/drive/MyDrive/3D/10001/10001\_TOF.nii.gz’)

view3d = itkwidgets.view(image, cmap=itkwidgets.cm.gray)

rendered3D = view3d.screenshot()

sitk.WriteImage(rendered3D, ‘/content/drive/MyDrive/3D/10001/10001\_TOF.png’)

---

<div class="post-metadata">

**Author:** ![Aleena\_Suhail](https://discourse.itk.org/user_avatar/discourse.itk.org/aleena_suhail/32/2335_2.png) [@Aleena\_Suhail](https://discourse.itk.org/u/Aleena_Suhail)\
**Post date:** [November 16, 2021, 1:43pm UTC](https://discourse.itk.org/t/how-can-i-generate-and-save-volume-rendered-images-of-brain-arteries/4575/9 "2021-11-16T13:43:12Z")

</div>

image = sitk.ReadImage(’/content/drive/MyDrive/3D/10001/10001\_TOF.nii.gz’)

view3d = itkwidgets.view(image, cmap=itkwidgets.cm.gray)

rendered3D = view3d.screenshot()

sitk.WriteImage(rendered3D, '/content/drive/MyDrive/3D/10001/10001\_TOF.png’)

something like this what should I replace screenshot with because it is giving me an error

---

<div class="post-metadata">

**Author:** ![dzenanz](https://discourse.itk.org/user_avatar/discourse.itk.org/dzenanz/32/1093_2.png) [@dzenanz](https://discourse.itk.org/u/dzenanz)\
**Post date:** [November 16, 2021, 2:04pm UTC](https://discourse.itk.org/t/how-can-i-generate-and-save-volume-rendered-images-of-brain-arteries/4575/10 "2021-11-16T14:04:18Z")

</div>

[This](https://discourse.vtk.org/t/save-window-rendering-results-to-image/3772/2?u=dzenanz) might be a way, because `itkwidgets` use `vtk.js` for rendering.

I don’t know if this [SO question](https://stackoverflow.com/questions/5621907/how-to-screenshot-website-in-javascript-client-side-how-google-did-it-no-nee) is helpful.

@matt.mccormick might have a suggestion.
