Skip to content

Commit 378fe99

Browse files
committed
Changes after review
1 parent 7034f07 commit 378fe99

10 files changed

Lines changed: 31 additions & 37 deletions

File tree

mevislab.github.io/content/tutorials/image_processing/image_processing6.md

Lines changed: 31 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ date: 2025-05-05
44
status: "OK"
55
draft: false
66
weight: 630
7-
tags: ["Advanced", "Tutorial", "Image Processing", "DICOM", "RTSTRUCT"]
7+
tags: ["Advanced", "Tutorial", "Image Processing", "DICOM", "RTSTRUCT", "RTDOSE", "RTPLAN"]
88
menu:
99
main:
1010
identifier: "imageprocessing6"
@@ -28,24 +28,30 @@ We use the `ExtractRTStruct`module for this example.
2828
* **RTDOSE**: Shows planned 3D dose distribution.
2929
* **RTPLAN**: Contains treatment plan details like beams and dose settings.
3030
Together, they ensure accurate and safe radiotherapy delivery.
31+
3132
## Prepare your network
3233
First, we need to download the ZIP file at **DICOM patient export** from:
3334

3435
https://medicalaffairs.varian.com/headandneckbilat-imrtsx2
3536

3637
It contains the CT, RTSTRUCT, and RTDOSE files needed for this tutorial to work correctly in MeVisLab.
3738

39+
{{<alert class="warning" caption="Attention">}}
40+
This data is FOR EDUCATIONAL AND SCIENTIFIC EXCHANGE ONLY – NOT FOR SALES OR PROMOTIONAL USE.
41+
{{</alert>}}
3842

39-
(*Create new folder named* **DICOM_from_Varian** ...*Copy the ZIP file into this folder*).
43+
Create new folder named *DICOM_FILES*. Extract the ZIP file into this folder.
4044

4145
We will use it in this tutorial.
4246

4347
Add the module `DicomImport` to your workspace.
4448

4549
!["DicomImport](/images/tutorials/image_processing/Dicommm.png "DicomImport")
46-
Then *click Browse and select the new folder named *DICOM_from_Varian* where you copied the ZIP file earlier, then press Import*. You can see it in the below figure:
4750

48-
![Importing DICOM RT Data from the DICOM_from_Varian Folder](/images/tutorials/image_processing/Import.png "Importing DICOM RT Data from the DICOM_from_Varian Folder")
51+
Then click Browse and select the new folder named *DICOM_FILES* where you copied the ZIP file earlier, then press Import. You can see it in the below figure:
52+
53+
![Importing DICOM RT Data from the DICOM_FILES Folder](/images/tutorials/image_processing/Import.png "Importing DICOM RT Data from the DICOM_FILES Folder")
54+
4955
Now add a `View2D` module and connect it to `DicomImport`.
5056

5157
As shown in the Data Tree (middle pane), the imported DICOM RT structure includes:
@@ -64,20 +70,17 @@ When you expand the tree view you will see:
6470

6571
After connecting, open the `View2D` and click on each of these items to visualize the corresponding data in the viewer, as shown in the figures below.
6672

73+
{{< imagegallery 4 "/images/tutorials/image_processing/" "RTPLAN" "RTSTRUCT" "CT512" "RTDOSE">}}
6774

68-
{{< imagegallery 4 "/images/tutorials/image_processing/" "RTPLANN" "RTSTRUCTTT" "CT512" "RTDOSEE">}}
69-
70-
71-
We select the CT 512×512×272×1 because it’s the foundation for viewing and aligning all other radiotherapy data.
75+
Select the CT 512×512×272×1 series.
7276
We now want to view the CT images and the RTSTRUCT data together. The module `DicomImport` only allows to select one single object. In order to select more than one object, we use a `DicomImportExtraOutput` module. Select the CT series in the `DicomImport` module and the RTSTRUCT in the `DicomImportExtraOutput` module.
7377

7478
You have to select the correct index for the RTSTRUCT. In our example it is index 2.
7579

76-
Add `DicomImportExtraOutput`module as shown in the below :
80+
Add `DicomImportExtraOutput` module as shown in the below :
7781

7882
![Selecting CT and RTSTRUCT in DicomImport](/images/tutorials/image_processing/SELECTINGCTRTSTRUCT.png "Selecting CT and RTSTRUCT in DicomImport")
7983

80-
8184
### **Visualize RTSTRUCTs as colored CSOs:**
8285

8386
Now we need an `ExtractRTStruct` module to convert RTSTRUCT data into CSOs (Contour Segmentation Objects). CSOs allow MeVisLab to visualize the contours on the CT scan and to interact with them.
@@ -87,15 +90,15 @@ Then coonect it with the `DicomImportExtraOutput` as shown in the figure:
8790
![ExtractRTStruct vonverter](/images/tutorials/image_processing/converter.png "ExtractRTStruct converter")
8891

8992

90-
Add `SoView2DCSOExtensibleEdito ` to enable visualization and interaction with the CSOs in the 2D viewer, allowing you to edit and work with the contours directly. Connect it with `View2D` and `ExtractRTStruct` modules, as shown, where `View2D` displays the CT scan with the contours.
93+
Add `SoView2DCSOExtensibleEditor` to enable visualization and interaction with the CSOs in the 2D viewer, allowing you to edit and work with the contours directly. Connect it with `View2D` and `ExtractRTStruct` modules, as shown, where `View2D` displays the CT scan with the contours.
9194

9295
![Connecting SoView2DCSOExtensibleEditor](/images/tutorials/image_processing/cotour.png "Connecting SoView2DCSOExtensibleEditor")
9396

9497
There are no names for the contours by default, we want to show the names for the contour to identify the segmented structure, so we need the `CSOLabelRenderer` module to add labels (e.g., 'Bladder', 'Prostate') next to each contour, helping to clearly identify the anatomy. The figure below shows that:
9598

9699
![CSOLabelRenderer](/images/tutorials/image_processing/CSOLabelRenderer.png " CSOLabelRenderer")
97100

98-
As you can see, the contours are labeled with numbers, so we need to display proper names. To do this, open the `CSOLabelRenderer` panel — it will display the panel shown below.
101+
As you can see, the contours are labeled with numbers. We want to show the names for the contour to identify the segmented structure. To do this, open the `CSOLabelRenderer` panel — it will display the panel shown below.
99102

100103

101104
![CSOLabelRenderer panel](/images/tutorials/image_processing/CSOLabelRendererpanel.png "CSOLabelRenderer panel")
@@ -107,69 +110,60 @@ labelString = cso.getGroupAt(0).getLabel()
107110
```
108111
{{</highlight>}}
109112

110-
Then press apply.
113+
Then press apply. You can see the names of the structures next to the contours.
111114

112115
![Edited CSOLabelRenderer Panel](/images/tutorials/image_processing/contournamed.png " Edited CSOLabelRenderer Panel")
113116

114-
115117
### **3D Visualization of Contours Using `SoExaminerViewer`**
116118

117119
If you want to visualize the contours in 3D, follow these steps:
118120

119-
Add the `SoCSO3DRenderer` module and connect it to the `ExtractRTStruc`t module.
120-
(The `SoCSO3DRenderer` will render the contours (CSOs) in the 3D space).
121+
Add the `SoCSO3DRenderer` module and connect it to the `ExtractRTStruct` module. The `SoCSO3DRenderer` will render the contours (CSOs) in the 3D space.
121122

122-
Add the `SoExaminerViewer` module and connect it to the `SoCSO3DRenderer` module.
123-
( The `SoExaminerViewer` will allow you to view the 3D contours. You can rotate, zoom, and move around the 3D image.)
124-
The following figure is the network and the result :
125-
126-
![3D Visualization of Contours Using SoExaminerViewe](/images/tutorials/image_processing/3D.png "3D Visualization of Contours Using SoExaminerViewe")
123+
Add the `SoExaminerViewer` module and connect it to the `SoCSO3DRenderer` module. The `SoExaminerViewer` will allow you to view the 3D contours. You can rotate, zoom, and move around the 3D image.
127124

125+
The following figure shows the network and the result:
128126

127+
![3D Visualization of Contours Using SoExaminerViewe](/images/tutorials/image_processing/3D.png "3D Visualization of Contours Using SoExaminerViewe")
129128

130129
### **Visualizing RTDOSE as a Color Overlay Using LUT**
131130

132-
Now we need to add another `DicomImportExtraOutput` module to import multiple DICOM objects ,You have to select the right index for the example it is index 4 thats mean RTDOSE 199*115*147*1 . Add `MinMaxScan`module to scan the input image and updates the minimum and maximum values of the output image, and connect it with the `DicomImportExtraOutput`
131+
Now we need to add another `DicomImportExtraOutput` module to import multiple DICOM objects ,You have to select the right index for the example it is index 4 thats mean RTDOSE 199*115*147*1 . Add `MinMaxScan` module to scan the input image and updates the minimum and maximum values of the output image, and connect it with the `DicomImportExtraOutput`.
132+
133133
![Importing RTDOSE Data and Applying MinMaxScan for Image Normalization](/images/tutorials/image_processing/minmaxscan.png "Importing RTDOSE Data and Applying MinMaxScan for Image Normalization")
134134

135-
Add ` Histogram` module to calculate the image's intensity distribution, and connect it with `MinMaxScan`.
135+
Add `Histogram` module to calculate the image's intensity distribution, and connect it with `MinMaxScan`.
136136

137-
The `Histogram` module computes the image's intensity distribution, and is connected to the `SoLUTEditor` to modify the lookup table (LUT). The LUT is then passed to the `SoGroup`, which is connected to the `SoView2DOverlay` to blend the 2D image overlay in a 2D viewer. The `SoLUTEditor` allows interactive editing of the LUT, while `SoView2DOverlay` facilitates overlaying the modified image in a 2D scene. Note that `SoView2DOverlay` is for 2D blending, and `GVROrthoOverlay` should be used for OrthoView2D.
138-
The below figure is shows connnection of the network:
137+
The `Histogram` module computes the image's intensity distribution, and is connected to the `SoLUTEditor` module to modify the lookup table (LUT). The LUT is then passed to the `SoGroup` module, which is connected to the `SoView2DOverlay` module to blend the 2D image overlay in a 2D viewer. The `SoLUTEditor` module allows interactive editing of the LUT, while `SoView2DOverlay` module facilitates overlaying the modified image in a 2D scene.
139138

140-
![Workflow for Intensity Distribution and 2D Image Overlay using LUT Editing"](/images/tutorials/image_processing/net.png "Workflow for Intensity Distribution and 2D Image Overlay using LUT Editing")
139+
Note that the `SoView2DOverlay` module is for 2D blending, and the `GVROrthoOverlay` module should be used for `OrthoView2D`.
141140

141+
The below figure is shows connnection of the network:
142142

143-
Now we should update the `Histogram` by pressing the update button on it.
143+
![Workflow for Intensity Distribution and 2D Image Overlay using LUT Editing"](/images/tutorials/image_processing/net.png "Workflow for Intensity Distribution and 2D Image Overlay using LUT Editing")
144144

145+
Now we should update the `Histogram` module by pressing the update button on it.
145146

146147
![Update Histogram](/images/tutorials/image_processing/histo.png " Update Histogram")
147148

148-
149-
Now Open `SoLUTEditor`, go to ... *Range* ... *Update Range From Histogram* to apply the histogram values, as shown in the figure :
149+
Now Open `SoLUTEditor` module panel, go to *Range*, *Update Range From Histogram* to apply the histogram values, as shown in the figure:
150150

151151
![SoLUTEditor Panel](/images/tutorials/image_processing/solut.png "SoLUTEditor Panel")
152152

153-
Then in the same panel from (*Editor*... *change the color of the values*) , as shown in the figure:
154-
153+
Then in the same panel from (*Editor*... *change the color of the values*), as shown in the figure:
155154

156155
![SoLUTEditor Panel Editior](/images/tutorials/image_processing/editior.png " SoLUTEditor Panel Editior")
157156

158-
159157
Finally, when you press `View2D `, it will display a 2D anatomical image with a colored RTDOSE overlay, where the dose distribution is visualized using a customized Lookup Table (LUT) that clearly highlights the radiation intensity levels within the body.
160158

161159
![Visualizing RTDOSE as a Color Overlay Using LUT](/images/tutorials/image_processing/2df.png "Visualizing RTDOSE as a Color Overlay Using LUT")
162160

163-
164-
---
165-
166161
## **Summary**
167-
168162
* Load DICOM RT data including RTDOSE and RTSTRUCT .
169163
* Visualize RTSTRUCTs with `ExtractRTStruct` and `CSOLabelRenderer`.
170164
* Display contour labels using `CSOLabelRenderer`.
171165
* View images in 2D (`View2D`) and 3D (`SoExaminerViewer`).
172166
* Visualize RTDOSE as a color overlay using `SoLUTEditor`.
173167
* Adjust dose intensity with `Histogram` and `MinMaxScan`.
174168

175-
{{< networkfile "/examples/image_processing/example6/DICOMRT.mlab" >}}
169+
{{< networkfile "/examples/image_processing/example6/DICOMRT.mlab" >}}
-32.4 KB
Loading
-3.98 KB
Loading
54.3 KB
Loading
Binary file not shown.
44 KB
Loading
Binary file not shown.
42.3 KB
Loading
Binary file not shown.
-15.8 KB
Loading

0 commit comments

Comments
 (0)