ellipse_phantom — TOMOGRAPHY forward op

Data kinds: noneimage2d (an op determined by its arguments alone — it takes no image or data input)

Call: import tomography; tomography.ellipse_phantom(size=256, ellipses=None, supersample=4) (or opstomography.get("ellipse_phantom"))

Usage

Rasterise a sum of uniform ellipses onto a *size* x *size* slice.

The default is :data:SHEPP_LOGAN. The normalised square `[-1, 1]^2` maps

onto the grid, so `x = (col - (size-1)/2) / (size/2)`; the same mapping is

used by :func:ellipse_sinogram, which is what makes the two comparable

without a fudge factor.

*supersample* is the anti-aliasing factor: each pixel is the mean of

`supersample^2` sub-samples, so an edge pixel carries its true area

fraction. This is not cosmetic — a hard 0/1 rasterisation projects to a

sinogram that disagrees with the closed form by 0.276 % interior RMS of

the peak, against 0.073 % anti-aliased (measured), and the

difference is entirely the partial-volume edge.

:param size: side of the square grid, `2 .. 16384`.

:param ellipses: `(N, 6) rows (x0, y0, a, b, phi_deg, rho)` in

normalised coordinates; `None -> :data:SHEPP_LOGAN`.

:param supersample: anti-alias factor per axis, `1 .. 16`.

:returns: `(size, size)` float64 image; the Shepp-Logan default spans

`[0.0, 1.0]`.

:raises ValueError: on a non-int size, a degenerate ellipse, or a grid over

:data:MAX_IMAGE_ELEMENTS.

References (sample data, literature)

• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).

• Operator provenance and references — the sources of the research/methods this op family came from.

• The canonical algorithm (author, year) and its uses are named in the family usage guide above.

Runnable examples (verified samples that actually call this op)

ct_reconstructionpy -3.11 examples/ct_reconstruction.py

poc_ct_fidelitypy -3.11 examples/poc_ct_fidelity.py

tomography_reconstructpy -3.11 examples/tomography_reconstruct.py

Ops the type connects to (they accept image2d as input)

radon_transform

Same category (forward)

ellipse_sinogram · radon_transform


*Provenance: tomography.py — TOMOGRAPHY operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*

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