How sumitlaha/qtdicomviewer works
QtDICOMViewer is a desktop DICOM-series viewer. A user opens a folder; MainWindow enumerates and reads the series, converts it to VTK image data, then displays axial, coronal, and sagittal views and metadata. Scrollbars change each view’s slice, and refresh resets the cameras. The source confirms this core workflow; the README also documents image translation, scaling, and intensity/color interaction, but their implementation details are not shown in the sampled code.
Main entry points: mainwindow.cpp Main window · main.cpp Qt application · mainwindow.ui Slice controls
Components 14
Application workflow
- Qt application
main.cpp - Main window
mainwindow.cpp
DICOM image pipeline
- DICOM folder
- Series enumerator
mainwindow.cpp - GDCM image IO
mainwindow.cpp - Series reader
mainwindow.cpp - ITK-VTK connector
mainwindow.cpp - VTK image data
mainwindow.cpp
Viewing interface
- Metadata table
mainwindow.ui - Three orthogonal views
mainwindow.cpp - View widgets
mainwindow.ui - Slice controls
mainwindow.ui - Refresh action
mainwindow.ui
Other components
- User
Connections 24
- User → Qt application: launches
- Qt application → Main window: creates
- User → Main window: opens folder
- Main window → DICOM folder: selects
- Main window → Series enumerator: sets directory
- Series enumerator → Series reader: file names
- Main window → Series reader: configures and updates
- Main window → GDCM image IO: sets reader IO
- Series reader → GDCM image IO: reads series
- Main window → ITK-VTK connector: sets ITK output
- ITK-VTK connector → Series reader: reads output
- Main window → VTK image data: copies converted output
- ITK-VTK connector → VTK image data: provides output
- Main window → GDCM image IO: reads metadata
- Main window → Metadata table: populates
- Main window → Three orthogonal views: sets image and orientations
- VTK image data → Three orthogonal views: image input
- Three orthogonal views → View widgets: renders in
- User → Slice controls: changes slice
- Slice controls → Main window: dispatches value change
- Main window → Three orthogonal views: sets slice and renders
- User → Refresh action: activates
- Refresh action → Main window: dispatches refresh
- Main window → Three orthogonal views: resets cameras