Skip to content

qaler/RTMGI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Real-Time MRI-Guided Intervention (RTMGI) Software with RGB-D–Based Augmented Reality Navigation

Overview

The Real-Time MRI-Guided Intervention (RTMGI) software is an advanced medical imaging platform that integrates augmented reality for real-time surgical guidance. This comprehensive system combines several core modules including MRI slice processing, 3D volume reconstruction, augmented reality fusion, and surgical instrument navigation to provide cutting-edge navigation support for interventional procedures.

RTMGI leverages consumer-grade depth cameras to acquire RGB-D data, significantly reducing the system's implementation costs. By interfacing with MRI systems for real-time data acquisition and advanced 3D processing, and fusing this with reconstructed reality models, it delivers precision augmented reality navigation for medical interventions.

Features

  • Real-time MRI Visualization: High-performance visualization of live MRI data streams
  • 3D Volume Rendering: Advanced volume rendering capabilities for detailed 3D anatomical structures
  • Augmented Reality Integration: AR-enhanced visualization for improved spatial understanding
  • Camera Integration: Real-time camera feed overlay with medical imaging data
  • Interactive Controls: Intuitive interfaces for manipulating 3D objects and viewing parameters
  • Cross-Platform Compatibility: Built with Qt for multi-platform support
  • Extensible Architecture: Modular design allowing for easy feature additions
  • DICOM Support: Full DICOM format compatibility for medical imaging data
  • Time-Point Navigation: Support for time-series medical data

Prerequisites

The RTMGI software requires several key dependencies:

Core Dependencies

  • Qt 5.15.2 or higher: For user interface and cross-platform compatibility
  • C++17 compiler: Required for modern C++ features
  • CMake 3.14 or higher: For build configuration
  • Git: For version control and project management

Development Dependencies

  • MITK (Medical Imaging Interaction Toolkit): For medical imaging functionality
  • VTK (Visualization Toolkit): For 3D visualization
  • ITK (Insight Segmentation and Registration Toolkit): For image processing
  • DCMTK: For DICOM format support
  • Open3D: For 3D data processing and visualization

Additional Libraries

  • CURL/CPR: For network functionality
  • TinyXML2: For XML configuration handling
  • nanomsg: For message passing
  • OpenCV: For computer vision operations

Recommended Tools

  • vcpkg package manager: For simplified dependency management

Installation

Prerequisites

Before building the RTMGI project, ensure you have the following prerequisites installed:

  • CMake 3.14 or higher: For build configuration
  • C++17 compatible compiler: Required for modern C++ features
  • Git: For version control and project management
  • Qt 5.15.2 or higher: For user interface and cross-platform compatibility
  • vcpkg package manager (optional): For simplified dependency management

Building the Project

The RTMGI project uses a CMake-based build system. Follow these steps to build the project:

Building with CMake (Recommended)

  1. Clone the repository:

    git clone https://github.com/qaler/RTMGI.git
    cd RTMGI
  2. Create build directory:

    mkdir build
    cd build
  3. Configure with CMake:

    # For Windows with Visual Studio
    cmake .. -G "Visual Studio 17 2022" -A x64 -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]/scripts/buildsystems/vcpkg.cmake
    
    # For Linux/macOS
    cmake .. -DCMAKE_BUILD_TYPE=Release
  4. Build the project:

    # Visual Studio (from the build directory)
    cmake --build . --config Release
    
    # Linux/macOS (from the build directory)
    make -j$(nproc)
  5. Run the application:

    # After successful build, run the executable from the app directory
    ./app/[executable_name]

Dependencies

The RTMGI software requires several key dependencies that can be managed using vcpkg:

# Install dependencies via vcpkg
vcpkg install qt5-base
vcpkg install vtk
vcpkg install itk
vcpkg install dcmtk
vcpkg install open3d
vcpkg install opencv4
vcpkg install curl
vcpkg install tinyxml2

Project Architecture

Module Structure

The RTMGI software follows a modular architecture with two primary components:

cvui (Computer Vision User Interface)

The cvui module provides the user interface infrastructure:

  • Qt-based widgets and controls
  • QML integration for modern UI components
  • OpenGL rendering contexts
  • UI event handling and management
  • Internationalization support (Chinese/English)
  • Configuration and settings management

cvwlib (Computer Vision Widget Library)

The cvwlib module contains the core functionality:

  • Volume Control (volctl): Manages 3D volume rendering with transfer functions and blending modes
  • Camera Viewer (cameraviewer): Handles camera integration and AR overlay
  • Image Slicer (imageslicew): Provides multi-planar reconstruction and slice viewing
  • 3D object manipulation and visualization
  • DICOM data processing
  • Real-time rendering capabilities
  • Medical image analysis tools

Project Directory Structure

 RTMGI/
  ├── app/                            # Main application entry point
  │   ├── main.cpp                    # Application entry point
  │   ├── CMakeLists.txt              # Application build configuration
  │   └── resources                   # Application icons and resources
  ├── cvui/                           # Computer Vision User Interface module
  │   ├── CMakeLists.txt              # Build configuration for UI module
  │   ├── cvui.h                      # Main UI library header
  │   ├── cvui.cpp                    # Main UI library implementation
  │   ├── cvui_d.h                    # Private header for UI library
  │   ├── cvui.qrc                    # Qt resource file for UI assets
  │   └── qml/                        # QML files for UI components
  │       ├── Camera/                 # Camera-related QML components
  │       │   └── CameraV.qml         # Camera view component
  │       ├── CameraGuide/            # Camera guide QML components
  │       │   ├── CalibrationDlg.qml  # Calibration dialog
  │       │   ├── CameraGuide.qml     # Camera guide component
  │       │   ├── GuideLinePosDlg.qml # Guide line position dialog
  │       │   ├── Image3DConfigDlg.qml # 3D image configuration dialog
  │       │   ├── MappingConfigDlg.qml # Mapping configuration dialog
  │       │   └── RealityFusion.qml   # Reality fusion component
  │       ├── Components/             # General UI components
  │       │   ├── CardStyle.qml       # Card-style component
  │       │   └── IntervalDialog.qml  # Interval dialog component
  │       ├── Frames/                 # Frame-related components
  │       │   ├── FrameL.qml          # Frame component
  │       │   └── ScanListDlg.qml     # Scan list dialog
  │       ├── Objects/                # 3D objects components
  │       │   ├── LinePositionDlg.qml # Line position dialog
  │       │   ├── Objects.qml         # Objects component
  │       │   └── PointPositionDlg.qml # Point position dialog
  │       ├── Probe/                  # Probe components
  │       │   ├── OffsetDlg.qml       # Offset dialog
  │       │   └── Probe.qml           # Probe component
  │       ├── Viewer/                 # Viewer components
  │       │   └── Viewer.qml          # Viewer component
  │       └── Side.qml                # Side panel component
  ├── cvwlib/                         # Computer Vision Widget Library module
  │   ├── CMakeLists.txt              # Build configuration for core library
  │   ├── cvwlib.h                    # Main library interface header
  │   ├── cvwlib.cpp                  # Main library interface implementation
  │   ├── cvwlib_d.h                  # Private header for core library
  │   ├── cvwl.qrc                    # Qt resource file for core library assets
  │   ├── volctl.h                    # Volume control header
  │   ├── volctl.cpp                  # Volume control implementation
  │   ├── cameraviewer.h              # Camera viewer header
  │   ├── cameraviewer.cpp            # Camera viewer implementation
  │   ├── cameraviewer_d.h            # Private header for camera viewer
  │   ├── imageslicew.h               # Image slicer header
  │   ├── imageslicew.cpp             # Image slicer implementation
  │   ├── imageslicew_d.h             # Private header for image slicer
  │   ├── lab/                        # Laboratory-specific components
  │   │   ├── labclickablelabel.h     # Clickable label header
  │   │   ├── labclickablelabel.cpp   # Clickable label implementation
  │   │   ├── labguidetext.h          # Guide text header
  │   │   ├── labguidetext.cpp        # Guide text implementation
  │   │   ├── labimagewidget.h        # MRI slice view widget header
  │   │   └── labimagewidget.cpp      # MRI slice view widget implementation
  │   └── obj/                        # 3D object components
  │       ├── solidlineobj.h          # Solid line object header
  │       ├── solidlineobj.cpp        # Solid line object implementation
  │       ├── SolidPointObj.h         # Solid point object header
  │       └── solidpointobj.cpp       # Solid point object implementation
  ├── include/                        # Public header files
  ├── build/                          # Build artifacts (gitignored)
  ├── CMakeLists.txt                  # Main project CMake file
  ├── PostAct.cmake                   # Post-build action configuration
  ├── README.md                       # This file
  └── LICENSE                         # License information

Authors

This project was developed by Fulang Qi and Jianyang Jiang of the USTC BMEC RFLab and Fuqing Medical Cooperation.

License

This project is licensed under the GNU General Public License v3.0 (GPLv3).

Copyright (C) 2025 USTC BMEC RFLab and Fuqing Medical Cooperation

About

Real-Time MRI-Guided Intervention (RTMGI) Software Using Augmented Reality.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •