ct_scan op• Datenarten: projstack × ctgeometry → voxel
• Aufruf: import fullseye as fs; fs.ledger.sirt_reconstruct(projections, geometry, n_iter=50, relaxation=1.0, initial=None, nonnegative=True, device='auto', on_iter=None) (die Implementierung direkt: import ctscan; ctscan.sirt_reconstruct(projections, geometry, n_iter=50, relaxation=1.0, initial=None, nonnegative=True, device='auto', on_iter=None); aus dem Register: opstomography.get("sirt_reconstruct"))
• GPU: nein (nur CPU-Referenzimplementierung)
SIRT: alle Ansichten zugleich, x <- x + lam C A^T R (p - A x).
> Die ausführliche Beschreibung unten ist der Originaltext — Zusammenfassung und Überschriften sind übersetzt.
R and C are the inverse row and column sums of A. With the matched pair of this family it minimises a weighted least-squares error, and it needs no formula, so it is the route for tomosynthesis, few views and limited angle.
:param projections: (view, V, U) line integrals. :param geometry: dict from ct_scan_geometry. :param n_iter: iterations, 1 .. 5000. :param relaxation: step lam, (0, 2). :param initial: starting volume; None gives zeros. :param nonnegative: clip to >= 0 after each iteration. :param device: "auto", "cpu" or "cuda". :param on_iter: optional on_iter(iteration, volume) for a convergence curve;
returning a boolean True (bool or numpy.bool_) stops after
that iteration; any other return value (None, numbers, dicts,
arrays) is ignored.
:returns: (Z, Y, X) float volume. :raises ValueError: on a shape that disagrees with the geometry or a relaxation
outside (0, 2). Empty input (projections with 0 elements) raises
ValueError.
The default 50 iterations is not converged. SIRT moves slowly. On consistent data (24^3 Shepp-Logan, cone, 20 views) the relative residual is 0.0318 at 50 iterations and 0.0087 at 200, and the nRMS to the truth drops from 0.0407 to 0.0232 (43 %); on the measured walnut (fan, 50 views) the RMSE to the reference is 0.0055 /mm at 60 iterations and 0.0036 at 400 (2026-11-09 audit). Comparing methods at the defaults makes SIRT look worse than it is. Choose n_iter from a curve: on_iter can compute the residual |A x - p| / |p| (ct_forward_project) or the error on held-out views, and return True once its relative change falls below e.g. 1e-3. With noisy data the error to the truth reaches a minimum and then rises again (semi-convergence), so the residual alone is not a stopping rule there.
• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).
• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.
• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.
• ct_scan_modes — py -3.11 examples/ct_scan_modes.py
• poc_ct_casting_sparse_views — py -3.11 examples/poc_ct_casting_sparse_views.py
• poc_real_walnut_cbct — py -3.11 examples/poc_real_walnut_cbct.py
voxel als Eingabe)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 · os_sart_reconstruct
*Provenance: ctscan.py — TOMOGRAPHY Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.