projection_angles — TOMOGRAPHY layout op

• Data kinds: कोई नहीं → signal (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)

• Call: import fullseye as fs; fs.ledger.projection_angles(n_angles=180, span_deg=180.0, scheme='uniform', start_deg=0.0) (implementation को सीधे call करना हो तो import tomography; tomography.projection_angles(n_angles=180, span_deg=180.0, scheme='uniform', start_deg=0.0), registry से लेना हो तो opstomography.get("projection_angles"))

उपयोग

scan के कोणों का क्रम, degree में, 1-D float64 array के रूप में।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

Three schemes, and the difference between them is what happens when a scan is cut short:

• "uniform" — start + span * k / n. The textbook scan. A prefix of it covers only a wedge, so an interrupted uniform scan is a limited-angle scan.

• "golden" — increments of 180/phi = 111.246... degrees, wrapped into [start, start+span). Every prefix is near-uniform, so an interrupted golden scan is a *sparse* scan, which is a far easier problem. Largest angular gap left by a scan that stops early, measured:

scheme after 32 of 180 all 180

uniform 149.000 deg 1.000 deg

golden 10.031 deg 1.464 deg

bit-reversed 8.000 deg 1.000 deg

Uniform's 149-degree hole is the entire limited-angle problem arriving by

accident. Bit-reversed is the only one of the three that is good at both

ends; golden's price for working at *every* prefix length rather than only

at powers of two is a completed set 1.46x less even than the grid.

• "bit-reversed" — the uniform grid, visited in bit-reversed order. Same guarantee as golden for power-of-two prefixes and exactly uniform at the end, which golden is not.

*span_deg* is the total angular range. 180 degrees is the complete data set for parallel beam — projections at theta and theta+180 are mirror images and carry no new information — so a 360-degree span is redundancy, not resolution, and anything under 180 is the limited-angle problem.

:param n_angles: number of views, 1 .. 65536. :param span_deg: total angular range in degrees, > 0. :param scheme: one of ANGLE_SCHEMES. :param start_deg: angle of the first view. :returns: (n_angles,) float64 array of degrees. :raises ValueError: on a non-int count, a non-positive span, a non-finite

start, or an unknown scheme.

संदर्भ (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_reconstruction — py -3.11 examples/ct_reconstruction.py

• poc_battery_ct_degradation — py -3.11 examples/poc_battery_ct_degradation.py

• poc_ct_fidelity — py -3.11 examples/poc_ct_fidelity.py

• tomography_reconstruct — py -3.11 examples/tomography_reconstruct.py

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

—

इसी category के (layout)

sinogram_design


*Provenance: tomography.py — TOMOGRAPHY operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.