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.

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 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 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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