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.
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL 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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.