volume op• Data kinds: voxel → sinostack
• Call: import fullseye as fs; fs.ledger.radon_volume(volume, angles_deg=None, n_detectors=None, oversample=1) (to call the implementation directly, import tomography; tomography.radon_volume(volume, angles_deg=None, n_detectors=None, oversample=1); from the registry, opstomography.get("radon_volume"))
Project every slice of a (Z, H, W) volume -> a (Z, A, D) stack.
Parallel-beam geometry with the rotation axis along Z, which is the case where the 3-D problem really is a stack of independent 2-D ones — each slice projects into its own sinogram and nothing crosses between them. (A cone beam does not have this property and is not implemented; saying so is cheaper than a wrong FDK.)
The output's axis order is (slice, angle, detector) so that stack[k] is a sinogram in this module's own convention and every 2-D operator here applies to it unchanged.
:param volume: (Z, H, W) float volume, Z >= 1. :param angles_deg: view angles; None -> uniform [0, 180), 180 views. :param n_detectors: bins; None -> covers the in-plane diagonal. :param oversample: ray samples per pixel, 1 .. 8. :returns: (Z, n_angles, n_detectors) float64 stack. :raises ValueError: on a non-3-D input or a stack over
MAX_STACK_ELEMENTS.
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
• poc_battery_ct_degradation — py -3.11 examples/poc_battery_ct_degradation.py
• tomography_reconstruct — py -3.11 examples/tomography_reconstruct.py
sinostack as input)volume)*Provenance: tomography.py — TOMOGRAPHY operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.