Skip to content

Commit e0bd3c7

Browse files
authored
My final changes
1 parent a078857 commit e0bd3c7

File tree

1 file changed

+27
-25
lines changed

1 file changed

+27
-25
lines changed

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

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ tags: ["Advanced", "Tutorial", "Image Processing", "DICOM", "RTSTRUCT", "RTDOSE"
88
menu:
99
main:
1010
identifier: "imageprocessing6"
11-
title: "Step-by-Step Guide to Loading and Visualizing DICOM RT Data (RTSTRUCT & RTDOSE) in MeVisLab."
11+
title: "Loading and Visualizing DICOM RT Data (RTSTRUCT & RTDOSE) in MeVisLab."
1212
weight: 630
1313
parent: "imageprocessing"
1414
---
@@ -30,7 +30,7 @@ We use the `ExtractRTStruct`module for this example.
3030
Together, they ensure accurate and safe radiotherapy delivery.
3131

3232
## Prepare your network
33-
First, we need to download the ZIP file at **DICOM patient export** from:
33+
First, we need to download the ZIP file from:
3434

3535
https://medicalaffairs.varian.com/headandneckbilat-imrtsx2
3636

@@ -48,16 +48,15 @@ Add the module `DicomImport` to your workspace.
4848

4949
!["DicomImport](/images/tutorials/image_processing/Dicommm.png "DicomImport")
5050

51-
Then click Browse and select the new folder named *DICOM_FILES* where you copied the content of the ZIP file earlier, then press Import. You can see it in the below figure:
51+
Then click {{< mousebutton "left" >}} Browse and select the new folder named *DICOM_FILES* where you copied the content of the ZIP file earlier. Click Import {{< mousebutton "left" >}}. You can see the result after import in the below figure:
5252

5353
![Importing DICOM RT Data from the DICOM_FILES Folder](/images/tutorials/image_processing/Import.png "Importing DICOM RT Data from the DICOM_FILES Folder")
5454

55-
Now add a `View2D` module and connect it to `DicomImport`.
55+
Now add a `View2D` module and connect it to the `DicomImport` module.
5656

5757
As shown in the Data Tree (middle pane), the imported DICOM RT structure includes:
5858

5959
* **eByLuKOZoWxBUrIW** – An anonymized Patient ID.
60-
6160
* **0000-00-00** – Missing or anonymized Birth/Study Date.
6261

6362
When you expand the tree view you will see:
@@ -72,33 +71,30 @@ After connecting, open the `View2D` and click on each of these items to visualiz
7271
{{< imagegallery 4 "/images/tutorials/image_processing/" "RTPLAN" "RTSTRUCT" "CT512" "RTDOSE">}}
7372

7473
Select the CT 512×512×272×1 series.
74+
7575
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.
7676

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

79-
Add `DicomImportExtraOutput` module as shown in the figure below:
80-
8179
![Selecting CT and RTSTRUCT in DicomImport](/images/tutorials/image_processing/SELECTINGCTRTSTRUCT.png "Selecting CT and RTSTRUCT in DicomImport")
8280

83-
### **Visualize RTSTRUCTs as colored CSOs:**
81+
### Visualize RTSTRUCTs as colored CSOs
8482

85-
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.
83+
Now we need an `ExtractRTStruct` module to convert RTSTRUCT data into CSOs (Contour Segmentation Objects). CSOs in MeVisLab allow to visualize the contours on the CT scan and to interact with them.
8684

8785
Then connect it with the `DicomImportExtraOutput` as shown in the figure:
8886

8987
![ExtractRTStruct vonverter](/images/tutorials/image_processing/converter.png "ExtractRTStruct converter")
9088

91-
92-
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.
89+
Add a `SoView2DCSOExtensibleEditor` module to enable visualization and interaction with the CSOs in the 2D viewer. Connect it with a `View2D` module and the `ExtractRTStruct` module. The `View2D` module shows the CT scan with the contours from the *RTSTRUCT* file.
9390

9491
![Connecting SoView2DCSOExtensibleEditor](/images/tutorials/image_processing/cotour.png "Connecting SoView2DCSOExtensibleEditor")
9592

96-
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:
93+
There are no names for the contours shown by default. We want to display the names for the contours available in the *RTSTRUCT* file to identify the segmented structure. Use the `CSOLabelRenderer` module to show labels (e.g., 'Bladder', 'Prostate') next to each contour. The figure below shows that:
9794

9895
![CSOLabelRenderer](/images/tutorials/image_processing/CSOLabelRenderer.png " CSOLabelRenderer")
9996

100-
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.
101-
97+
As you can see, the contours are labeled with numbers. The number is the internal ID of the contour. We want to show the names for the contour to identify the segmented structure. To do this, open the `CSOLabelRenderer` panel.
10298

10399
![CSOLabelRenderer panel](/images/tutorials/image_processing/CSOLabelRendererpanel.png "CSOLabelRenderer panel")
104100

@@ -109,33 +105,40 @@ labelString = cso.getGroupAt(0).getLabel()
109105
```
110106
{{</highlight>}}
111107

112-
Then press apply. You can see the names of the structures next to the contours.
108+
Then press apply. The label of the CSO provides the name of each contour. You can see them next to the contours.
113109

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

116-
### **3D Visualization of Contours Using `SoExaminerViewer`**
112+
{{<alert class="info" caption="Extra Information">}}
113+
You can use a `CSOLabelPlacementLocal` module or a `CSOLabelPlacementGlobal` module to define the locations of these labels.
114+
{{</alert>}}
115+
116+
### 3D Visualization of Contours Using `SoExaminerViewer`
117117

118118
If you want to visualize the contours in 3D, follow these steps:
119119

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

122122
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.
123123

124124
The following figure shows the network and the result:
125125

126126
![3D Visualization of Contours Using SoExaminerViewe](/images/tutorials/image_processing/3D.png "3D Visualization of Contours Using SoExaminerViewe")
127127

128-
### **Visualizing RTDOSE as a Color Overlay Using LUT**
128+
### Visualizing RTDOSE as a Color Overlay Using LUT
129+
We now ant to show the *RTDOSE* data as provided for the patient as a semi-transparent overlay.
129130

130-
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 correct index for the example. In this case, we select index 4 for the *RTDOSE* 199*115*147*1 data. Add a `MinMaxScan` module to scan the input image and calculate the minimum and maximum values of the image. Connect it with the `DicomImportExtraOutput` module.
131132

132133
![Importing RTDOSE Data and Applying MinMaxScan for Image Normalization](/images/tutorials/image_processing/minmaxscan.png "Importing RTDOSE Data and Applying MinMaxScan for Image Normalization")
133134

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

136-
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.
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 the `SoView2DOverlay` module facilitates overlaying *RTDOSE* in a 2D scene.
137138

138-
Note that the `SoView2DOverlay` module is for 2D blending, and the `GVROrthoOverlay` module should be used for `OrthoView2D`.
139+
{{<alert class="info" caption="Extra Information">}}
140+
Note that the `SoView2DOverlay` module is for 2D blending. The `GVROrthoOverlay` module should be used for `OrthoView2D`.
141+
{{</alert>}}
139142

140143
The below figure shows the connections of the network:
141144

@@ -149,12 +152,11 @@ Now open `SoLUTEditor` module panel, go to *Range*, *Update Range From Histogram
149152

150153
![SoLUTEditor Panel](/images/tutorials/image_processing/solut.png "SoLUTEditor Panel")
151154

152-
Then in the same panel from (*Editor*... *change the color of the values*), as shown in the figure:
155+
In the same panel, on tab *Editor*, change the colors as shown in the figure:
153156

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

156-
157-
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.
159+
Finally, when you open the `View2D` panel, 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.
158160

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

0 commit comments

Comments
 (0)