This application is a Medical Imaging Visualization Tool developed using Python, VTK, and PyQt5. It is designed to load, process, and render 3D medical datasets (DICOM Series) such as CT and MRI scans.
The tool provides advanced visualization techniques including GPU-Accelerated Ray Casting for volume rendering and Marching Cubes (Contour Filter) for iso-surface extraction, allowing users to explore internal anatomical structures interactively.
- DICOM Data Handling: Uses
vtkDICOMImageReaderto parse and load standard medical image series from directories. - Volume Rendering (Ray Casting):
- Utilizes
vtkGPUVolumeRayCastMapperfor high-performance, hardware-accelerated rendering. - Adjustable Transfer Functions: Users can modify Opacity and Color Gradients in real-time to highlight specific tissues (e.g., bone vs. soft tissue).
- Utilizes
- Surface Rendering (Iso-surfacing):
- Implements
vtkContourFilterto extract 3D surfaces based on Hounsfield unit thresholds. - Adjustable Iso-value Slider to dynamically peel through layers (Skin -> Muscle -> Bone).
- Implements
- Interactive GUI: Built with PyQt5 to provide intuitive controls for file loading, rendering mode selection, and parameter tuning.
The application separates the Visualization Logic from the UI Logic:
- Visualization Engine (VTK): Handles the rendering pipeline (Source -> Mapper -> Actor -> Renderer).
- User Interface (PyQt5): Manages user inputs (Sliders, Buttons) and signals the VTK pipeline to update the render window.
- Install Dependencies:
pip install vtk PyQt5
- Run the Application:
python src/app.py
- Workflow:
- Click "Surface Rendering" or "Ray Casting Rendering".
- Select a folder containing a DICOM Series.
- Use the Sliders to adjust Opacity (for Volume) or Iso-Value (for Surface).
- GUI had been created using
pyqt5andQt Creator
- The surface rendring is done using function
surface_rendering
- Iso values of surface rendring is adjustable using sliders
- The Ray casting rendring is done using function
casting_rendering
- The user can adjust the opacity and the RGB color of the Casting ray rendering using sliders by function
opacity_slider
- Python: Core logic.
- VTK (Visualization Toolkit): 3D Rendering & Image Processing.
- PyQt5: Graphical User Interface.
- Qt Designer: UI Prototyping (
.uifile).






