# Rendering for CT and dsa registration

**URL:** <https://discourse.slicer.org/t/rendering-for-ct-and-dsa-registration/37662>\
**Category:** Development\
**Created:** [August 2, 2024, 7:09am UTC](https://discourse.slicer.org/t/rendering-for-ct-and-dsa-registration/37662 "2024-08-02T07:09:54Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![fqzhice](https://avatars.discourse-cdn.com/v4/letter/f/7bcc69/32.png) [@fqzhice](https://discourse.slicer.org/u/fqzhice)\
**Post date:** [August 2, 2024, 7:09am UTC](https://discourse.slicer.org/t/rendering-for-ct-and-dsa-registration/37662/1 "2024-08-02T07:09:54Z")

</div>

I made registration from CT to DSA, The right-top image is generated after DRR projection.

i want to paint drr image on VR window, Also DSA video is on background layer. The user can move or rotate drr projected image manually.

```auto
// load projected image and convert vector to scalar volume node, 
// refer to vectortoscalar module
movedImage = "C:/PilotImage/Release/Slicer-build/bin/Release/bone.png";
QString cmd = QString(
"import vtk,slicer\n"
"inputVolumeNode=slicer.util.loadVolume('%1')\n"
"outputVolumeNode=slicer.mrmlScene.AddNewNodeByClass('vtkMRMLScalarVolumeNode')\n"
"ijkToRAS = vtk.vtkMatrix4x4()\n"
"inputVolumeNode.GetIJKToRASMatrix(ijkToRAS)\n"
"outputVolumeNode.SetIJKToRASMatrix(ijkToRAS)\n"
"extract=vtk.vtkImageExtractComponents()\n"
"extract.SetInputConnection(inputVolumeNode.GetImageDataConnection())\n"
"extract.SetComponents(0, 1, 2)\n"
"luminance=vtk.vtkImageLuminance()\n"
"luminance.SetInputConnection(extract.GetOutputPort())\n"
"luminance.Update()\n"
"outputVolumeNode.SetImageDataConnection(luminance.GetOutputPort())\n"
"outputVolumeNode.CreateDefaultDisplayNodes()\n"
"outputVolumeNode.SetName('BoneProjected')\n"
"displayNode=outputVolumeNode.GetVolumeDisplayNode()\n"
"displayNode.SetAndObserveColorNodeID('vtkMRMLColorTableNodeYellow')\n"
"slicer.mrmlScene.AddDefaultNode(displayNode)\n").arg(movedImage);
qSlicerPythonManager* pythonManager = qSlicerApplication::application()->pythonManager();
pythonManager->executeString(cmd);

//render projected image
vtkMRMLScalarVolumeNode* projecedNode = vtkMRMLScalarVolumeNode::SafeDownCast(
    d->scene->GetFirstNodeByName("BoneProjected"));
vtkImageData* imageData = projecedNode->GetImageData();
vtkImageActor* image_actor = vtkImageActor::New();
image_actor->SetInputData(imageData);
auto threeDWidget = qSlicerApplication::application()->layoutManager()->threeDWidget(0);
auto view = threeDWidget->threeDView();
vtkRenderer* foregroundRenderer = vtkRenderer::New();
foregroundRenderer->InteractiveOff();
foregroundRenderer->AddActor(image_actor);
foregroundRenderer->SetLayer(1);
vtkRenderWindow* renderWindow = view->renderWindow();
renderWindow->AddRenderer(foregroundRenderer);
return;

```

Result is as below.

 ![20240802151430](https://us1.discourse-cdn.com/flex002/uploads/slicer/original/3X/2/c/2c29086c15d6d66bf09f3456d7d3e0b82f10b682.jpeg)

How can i display the drr image correctly with suitable color and direction.

---

<div class="post-metadata">

**Author:** ![fqzhice](https://avatars.discourse-cdn.com/v4/letter/f/7bcc69/32.png) [@fqzhice](https://discourse.slicer.org/u/fqzhice)\
**Post date:** [August 2, 2024, 8:53am UTC](https://discourse.slicer.org/t/rendering-for-ct-and-dsa-registration/37662/3 "2024-08-02T08:53:03Z")

</div>

| | redSliceNode = slicer.mrmlScene.GetNodeByID(‘vtkMRMLSliceNodeRed’)\n |
| --- | --- |
| | redSliceNode.SetSliceVisible(True)\n |
| | redSliceNode.AddThreeDViewID(‘vtkMRMLViewNode1’)\n |

I fixed it by this
