forward op• 数据种类:无 → sinogram(仅由参数决定的算子 —— 不接受图像或数据输入)
• 调用:import tomography; tomography.ellipse_sinogram(size=256, ellipses=None, angles_deg=None, n_detectors=None)(或 opstomography.get("ellipse_sinogram"))
若干均匀椭圆之和的闭式 Radon 变换。
> 以下的详细说明为原文 —— 摘要与标题已翻译。
The ground truth this module is tested against, and a usable operator in its
own right: a sinogram with no discretisation error to feed a reconstruction,
so that any error in the picture belongs to the reconstruction and not to the
projector.
For one ellipse with centre `(x0, y0), semi-axes (a, b)`, rotation
`phi and density rho, the line integral along `x cos(t) + y sin(t) =
s`` is::
A(t)^2 = a^2 cos^2(t - phi) + b^2 sin^2(t - phi)
s' = s - (x0 cos t + y0 sin t)
p = 2 rho a b sqrt(A^2 - s'^2) / A^2 for |s'| < A, else 0
which for a disc (`a = b = r, rho = 1`) collapses to the chord length
`2 sqrt(r^2 - s^2)`. Densities add, so a sum of ellipses projects to a sum
of these.
The result is in the same pixel units as :func:radon_transform applied
to :func:ellipse_phantom at the same *size*: the normalised half-width is
`size/2` pixels, and a line integral scales with length, so the closed form
is multiplied by `size/2`. Getting that factor wrong is invisible in the
picture — a sinogram has no absolute scale — and shows up only as a
reconstruction whose density is off by a constant, which is why it is pinned
by a test rather than by a comment.
:param size: the pixel grid the units refer to (as in :func:ellipse_phantom).
:param ellipses: as :func:ellipse_phantom; `None -> :data:SHEPP_LOGAN`.
:param angles_deg: view angles; `None -> `linspace(0, 180, 180,
endpoint=False)``.
:param n_detectors: detector bins; `None` -> enough to cover the diagonal.
:returns: `(n_angles, n_detectors)` float64 sinogram.
:raises ValueError: on a degenerate ellipse or a sinogram over
:data:MAX_SINOGRAM_ELEMENTS.
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者・年份)与用途见上面的族使用指南。
• ct_reconstruction — py -3.11 examples/ct_reconstruction.py
sinogram 作为输入)backproject_sinogram · filtered_backprojection · sart_reconstruct · beam_hardening_apply · beam_hardening_correct · ring_artifact_apply · ring_artifact_remove · metal_trace_interpolate
forward)ellipse_phantom · radon_transform
*Provenance: tomography.py — TOMOGRAPHY 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.