backproject_sinogram — TOMOGRAPHY reconstruct op

• 데이터 종류: sinogram → image2d

• 호출: import fullseye as fs; fs.ledger.backproject_sinogram(sinogram, angles_deg=None, size=None, span_deg=None)(구현을 직접 호출하려면 import tomography; tomography.backproject_sinogram(sinogram, angles_deg=None, size=None, span_deg=None), 원장에서 가져오려면 opstomography.get("backproject_sinogram"))

사용법

필터 없는 소박한 역투영 —— 흐린 베이스라인.

> 아래 상세 설명은 원문입니다 —— 요약과 제목은 번역되어 있습니다.

Smear each projection back along the rays it came from and sum. The result is the true slice convolved with 1/|r|, so it is correct in the large and wrong everywhere in detail.

Two numbers, because only one of them is the interesting one. Raw, on the Shepp-Logan phantom with 180 views, this operator's values run 0.768 to 2.493 where the truth runs 0.0 to 0.0167 — the 1/|r| kernel has no finite integral, so an un-filtered back-projection has no meaningful absolute scale at all and its normalised RMS error against the truth is 104. After the best least-squares rescaling onto the truth — which is what any display with an auto window does for you, silently — the error is 0.168 against 0.0246 for filtered_backprojection, a factor of 6.8. That second number is the ramp filter's real contribution; the first is a warning that a picture which looks approximately right after auto-windowing can be off by a factor of 100 in the numbers underneath it.

It is a registered operator and not a private helper because the blur *is* the lesson, and because it is the correct starting point for iterative methods.

Not to be confused with fullseye.backproject, which lifts pixels into 3-D using a depth map and a camera model; that one is projective geometry, this one is an integral transform, and the only thing they share is a word.

:param sinogram: (n_angles, n_detectors), rows = angles. :param angles_deg: view angles; None -> uniform [0, 180). :param size: output side; None -> the inscribed square, n_det/sqrt2

rounded down to an odd number.

:param span_deg: angular range used for the d(theta) weight; None ->

inferred from *angles_deg* (or 180 for the default scan).

:returns: (size, size) float64 image. :raises ValueError: as filtered_backprojection.

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• ct_reconstruction — py -3.11 examples/ct_reconstruction.py

• poc_ct_fidelity — py -3.11 examples/poc_ct_fidelity.py

타입이 이어지는 다음 연산자(image2d 를 입력으로 받는 것)

radon_transform

같은 카테고리(reconstruct)

filtered_backprojection · sart_reconstruct


*Provenance: tomography.py — TOMOGRAPHY 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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