ct_scan op• Data kinds: projstack × ctgeometry → voxel
• Call: 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) (implementation को सीधे call करना हो तो import ctscan; ctscan.sirt_reconstruct(projections, geometry, n_iter=50, relaxation=1.0, initial=None, nonnegative=True, device='auto', on_iter=None), registry से लेना हो तो opstomography.get("sirt_reconstruct"))
• GPU: नहीं (केवल CPU reference implementation)
SIRT: सभी व्यू एक साथ, x <- x + lam C A^T R (p - A x)।
> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।
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.
• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।
• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।
• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।
• 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 को 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 · os_sart_reconstruct
*Provenance: ctscan.py — TOMOGRAPHY operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.