Skip to content

Desktop application for interactive 3D medical imaging, featuring DICOM loading, iso-surface extraction, and transfer-function-based volume rendering.

Notifications You must be signed in to change notification settings

mariamashraf731/DICOM-Volume-Renderer-VTK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🩻 Medical Volume Renderer & Visualizer

Language GUI Library Domain

πŸ“Œ Project Overview

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.

βš™οΈ Key Features

  • DICOM Data Handling: Uses vtkDICOMImageReader to parse and load standard medical image series from directories.
  • Volume Rendering (Ray Casting):
    • Utilizes vtkGPUVolumeRayCastMapper for 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).
  • Surface Rendering (Iso-surfacing):
    • Implements vtkContourFilter to extract 3D surfaces based on Hounsfield unit thresholds.
    • Adjustable Iso-value Slider to dynamically peel through layers (Skin -> Muscle -> Bone).
  • Interactive GUI: Built with PyQt5 to provide intuitive controls for file loading, rendering mode selection, and parameter tuning.

πŸ› οΈ Technical Architecture

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.

πŸš€ Installation & Usage

  1. Install Dependencies:
    pip install vtk PyQt5
  2. Run the Application:
    python src/app.py
  3. 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).

πŸ–ΌοΈ Gallery

  • GUI had been created using pyqt5 and Qt Creator

img

  • The surface rendring is done using function surface_rendering

img

  • Iso values of surface rendring is adjustable using sliders

img

  • The Ray casting rendring is done using function casting_rendering

img

  • The user can adjust the opacity and the RGB color of the Casting ray rendering using sliders by function opacity_slider

img img

img

πŸ‘¨β€πŸ’» Technologies Used

  • Python: Core logic.
  • VTK (Visualization Toolkit): 3D Rendering & Image Processing.
  • PyQt5: Graphical User Interface.
  • Qt Designer: UI Prototyping (.ui file).

About

Desktop application for interactive 3D medical imaging, featuring DICOM loading, iso-surface extraction, and transfer-function-based volume rendering.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages