sirt_reconstruct — TOMOGRAPHY 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, साहित्य)

• 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 में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• 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

वे अगले ops जिनसे type जुड़ता है (voxel को input के रूप में लेते हैं)

radon_volume · ct_forward_project

इसी category के (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.