Skip to content

Dosimetry Methods

chromadose implements four multichannel film dosimetry methods. All share the same calibration model — the rational function \(\text{pixel}(D) = \frac{r + sD}{t + D}\) — but differ in how they combine information from multiple color channels to estimate dose.

Comparison

Method Year Approach Speed Best for
Micke 2011 Least-squares multichannel 0.14s General use, original method
Mayer 2012 Analytical optimization 0.04s Speed-critical applications
Multigaussian 2018 Maximum likelihood (MLE) 4.7s Best accuracy, research
ANN 2025 Neural network ~1s Batch-independent calibration

Times measured on a 550x500 pixel film image.

Unified API

All methods share the same interface:

solver = SomeMethod()
dose_map = solver.solve(film, calibration)

# Every method returns:
dose_map.dose          # (H, W) dose in Gy
dose_map.uncertainty   # (H, W) per-pixel uncertainty
dose_map.dose_r        # (H, W) red channel dose
dose_map.dose_g        # (H, W) green channel dose
dose_map.dose_b        # (H, W) blue channel dose
dose_map.method        # "micke", "mayer", "multigaussian", or "ann"