2026-01-12 20:55:21 +00:00
2026-01-05 21:49:52 +01:00
2026-01-06 00:14:34 +01:00
2026-01-05 23:14:04 +01:00
2026-01-12 18:04:36 +01:00
2026-01-07 01:26:41 +01:00
2026-01-05 21:49:52 +01:00
2026-01-05 21:49:52 +01:00
2026-01-05 21:49:52 +01:00
2026-01-05 21:49:52 +01:00
2026-01-05 23:14:04 +01:00
2026-01-06 00:37:57 +01:00
2026-01-05 21:49:52 +01:00
2026-01-05 21:49:52 +01:00
2026-01-12 18:01:54 +01:00
2026-01-06 00:14:34 +01:00
2026-01-06 00:14:34 +01:00
2026-01-07 01:26:41 +01:00
2026-01-12 20:55:21 +00:00
2026-01-07 14:22:54 +01:00
2026-01-12 18:01:54 +01:00
2026-01-05 23:14:04 +01:00

Automated Fiducial Marker Localization in CT Images

This repository contains a C++ implementation of an automated 3D fiducial marker localization algorithm for CT images, based on surface processing and geometrical prior knowledge.

The software is designed to automatically localize external radio-opaque spherical markers used for patient setup and navigation in radiotherapy and computer assisted surgery workflows.

The implementation follows the methodology described in:

Giovanni Fattori, Marco Riboldi, Maxime Desplanques, Barbara Tagaste, Andrea Pella, Roberto Orecchia, Guido Baroni.
Automated Fiducial Localization in CT Images Based on Surface Processing and Geometrical Prior Knowledge for Radiotherapy Applications
IEEE Transactions on Biomedical Engineering, 2012.
https://doi.org/10.1109/TBME.2012.2198822

BibTeX
@article{Fattori2012,
  author  = {Giovanni Fattori and Marco Riboldi and others},
  title   = {Automated Fiducial Localization in CT Images Based on Surface Processing and Geometrical Prior Knowledge for Radiotherapy Applications},
  journal = {IEEE Transactions on Biomedical Engineering},
  year    = {2012},
  doi     = {10.1109/TBME.2012.2198822}
}

Please cite the accompanying article when using this software in academic work.


Method Overview

The algorithm implements a 3D surface-based workflow, composed of four main stages:

  1. Surface Extraction

    • Marching Cubes applied to the CT volume at a HU threshold
    • Extraction of all high-density candidate surfaces
    • Optional skull masking for cranial CT scans
  2. Surface Processing

    • Mesh smoothing and regularization
    • Normal computation and surface cleanup
  3. Marker Recognition (Geometrical Filtering)

    • Bounding box size constraints
    • Hausdorff distance comparison with a template sphere
    • Bounding box symmetry checks
    • Rejection of non-spherical or defective markers
  4. Fiducial Center Localization

    • Surface centroid computation

Accuracy and Validation

Reported performance (see reference paper):

  • Localization accuracy: < 0.3 mm (phantom study)
  • Sensitivity: ~90% on heterogeneous clinical datasets
  • False positives: none reported after filtering
  • CT robustness: validated up to 3 mm slice thickness

Implementation Details

  • Language: C++
  • Build system: CMake
  • Dependencies:
    • VTK surface extraction and processing
    • ITK DICOM handling and processing (skull masking)
    • GDCM DICOM handling

Tested Software Versions

This project has been built and tested with the following software stack:

  • Qt: 6.x
  • VTK: 9.5
  • ITK: 5.4
  • GDCM: 3.2

Other versions may work but have not been formally validated.


License

BSD 3-Clause License

S
Description
No description provided
Readme Cite this repository 373 KiB
Languages
C++ 97.2%
CMake 2.7%