ct_scan op• Data kinds: projstack × ctgeometry → voxel
• Call: import fullseye as fs; fs.ledger.tv_reconstruct(projections, geometry, tv_weight=0.0003, n_iter=200, initial=None, nonnegative=True, device='auto', on_iter=None) (to call the implementation directly, import ctscan; ctscan.tv_reconstruct(projections, geometry, tv_weight=0.0003, n_iter=200, initial=None, nonnegative=True, device='auto', on_iter=None); from the registry, opstomography.get("tv_reconstruct"))
• GPU: none (CPU reference implementation only)
Total-variation reconstruction by the Chambolle-Pock primal-dual method.
Solves min 0.5 ||A x - p||^2 + w ||grad x||_1 with x >= 0, in the form Sidky, Jorgensen & Pan 2012 give for CT. The prior says that the object is piecewise constant, which is what lets it fill data that was never measured: few views and limited angle. On an object that is not piecewise constant it paints the same flat patches, so a low residual here is not evidence of truth.
*tv_weight* is in units of ||A||^2 times the volume scale, so that one value behaves alike across grid sizes.
:param projections: (view, V, U) line integrals. :param geometry: dict from ct_scan_geometry. :param tv_weight: strength of the prior, >= 0. :param n_iter: primal-dual iterations, 1 .. 5000. :param initial: starting volume; None gives zeros. :param nonnegative: enforce x >= 0. :param device: "auto", "cpu" or "cuda". :param on_iter: optional on_iter(iteration, volume). :returns: (Z, Y, X) float volume. :raises ValueError: on a shape that disagrees with the geometry or a negative
weight. Empty input (projections with 0 elements) raises ValueError.
• 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.
• ct_scan_modes — py -3.11 examples/ct_scan_modes.py
voxel as input)radon_volume · ct_forward_project
ct_scan)ct_scan_geometry · shepp_logan_3d · ellipsoid_phantom · ellipsoid_projections · ct_forward_project · ct_adjoint_project · fdk_reconstruct · sirt_reconstruct
*Provenance: ctscan.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.