ct_scan op• 数据种类:无 → ctgeometry(仅由参数决定的算子 —— 不接受图像或数据输入)
• 调用: import fullseye as fs; fs.ledger.ct_scan_geometry(scan='cone', n_views=360, n_u=256, n_v=256, vol_shape=(256, 256, 256), voxel=1.0, du=None, dv=None, dso=None, dsd=None, detector='flat', arc_deg=None, start_deg=0.0, angles_deg=None, offset_u=0.0, pitch=1.0, turns=None, tilt_deg=30.0)(要直接调用实现,import ctscan; ctscan.ct_scan_geometry(scan='cone', n_views=360, n_u=256, n_v=256, vol_shape=(256, 256, 256), voxel=1.0, du=None, dv=None, dso=None, dsd=None, detector='flat', arc_deg=None, start_deg=0.0, angles_deg=None, offset_u=0.0, pitch=1.0, turns=None, tilt_deg=30.0);从台账取用则 opstomography.get("ct_scan_geometry"))
• GPU:无(仅 CPU 参考实现)
描述一次 CT 扫描:每个视角下射线源和探测器的位置。
> 以下的详细说明为原文 —— 摘要与标题已翻译。
Every other operator in this family reads this dict and nothing else, so a new scan is a new orbit here and never a new projector. The result carries, for each view, source (for a parallel beam the ray direction), det_center, det_u and det_v in physical units with the origin at the volume centre.
The orbits. "cone" is a circle around the z axis with a flat panel, the industrial default; "fan" the same with a single detector row, for a single slice; "helical" the cone with the source and detector moving along z, pitch detector heights per turn; "laminography" a circle tilted so that the beam meets the board normal at tilt_deg (90 is an ordinary CT, and dso=None with scan="laminography" is the parallel-beam form); "tomosynthesis" a source arc of arc_deg over a detector that does not move; "parallel" parallel rays.
A short scan is arc_deg < 360, a few-view scan a small n_views, a limited-angle scan a small arc_deg or an explicit angles_deg, and an offset detector offset_u bins. Those are parameters of the orbit, not new scans.
:param scan: one of SCANS. :param n_views: views, 1 .. 65536; ignored when *angles_deg* is given. :param n_u: detector columns. :param n_v: detector rows. :param vol_shape: (Z, Y, X) of the reconstruction, or one int for a cube. :param voxel: voxel edge in physical units. :param du: detector column pitch; None gives one voxel at the isocentre. :param dv: detector row pitch; None gives one voxel at the isocentre. :param dso: source to isocentre distance; None gives 3 volume widths. :param dsd: source to detector distance; None gives 2 * dso. :param detector: one of DETECTORS. :param arc_deg: orbit length; None gives 360, or 180 for "parallel", or 40
for "tomosynthesis".
:param start_deg: first view angle. :param angles_deg: explicit increasing view angles; overrides *n_views* and *arc_deg*. :param offset_u: detector shift in bins along u, for an extended field of view. :param pitch: helical table feed per turn, in detector heights at the isocentre. :param turns: helical turns; None covers the volume height. :param tilt_deg: laminography angle between the beam and the rotation axis. :returns: geometry dict; vol_shape, n_views, n_v, n_u and the per-view
arrays are the public fields.
:raises ValueError: on an unknown scan or detector, a non-positive length, a source
inside the volume, arc above 360, or an oversized request.
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
• 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
ctgeometry 作为输入)ellipsoid_projections · ct_forward_project · ct_adjoint_project · fdk_reconstruct · sirt_reconstruct · os_sart_reconstruct · tv_reconstruct · ct_dual_energy_reconstruct
ct_scan)shepp_logan_3d · ellipsoid_phantom · ellipsoid_projections · ct_forward_project · ct_adjoint_project · fdk_reconstruct · sirt_reconstruct · os_sart_reconstruct
*Provenance: ctscan.py — TOMOGRAPHY 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.