ct_scan_geometry — TOMOGRAPHY 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

型別可銜接的下一個運算子(可接受 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.