Skip to content

chromadose

Modern multichannel radiochromic film dosimetry in Python.

chromadose implements all major multichannel film dosimetry methods in one library, with built-in uncertainty estimation, gamma analysis, and PDF reporting.

Why chromadose?

Feature chromadose FilmQA Pro OMG Dosimetry
Micke method Yes Yes No
Mayer method Yes No Yes
Multigaussian Yes No No
Neural network Yes No No
Uncertainty Every method Limited No
Open source MIT Commercial GPL
Vectorized Yes N/A Row-by-row

Quick Example

import chromadose as cd
from chromadose.methods import MickeSolver

# Load calibration and film
cal = cd.Calibration.load("calibration.json")
film = cd.FilmScan(red=red, green=green, blue=blue)

# Convert to dose
dose_map = MickeSolver().solve(film, cal.result)

# Gamma analysis
from chromadose.analysis import gamma_2d
gamma = gamma_2d(reference, dose_map.dose, dose_criteria=3, distance_criteria_mm=3)
print(f"Pass rate: {gamma.pass_rate * 100:.1f}%")

Methods at a Glance

Method Speed (550x500) Reference
Mayer 0.04s Mayer et al., Med. Phys. 2012
Micke 0.14s Micke, Lewis, Yu, Med. Phys. 2011
Multigaussian 4.7s Mendez et al., Phys. Med. Biol. 2018
ANN ~1s Chang et al., Phys. Med. Biol. 2025