forward op• Data kinds: none → image2d (an op determined by its arguments alone — it takes no image or data input)
• Call: import fullseye as fs; fs.ledger.ellipse_phantom(size=256, ellipses=None, supersample=4) (to call the implementation directly, import tomography; tomography.ellipse_phantom(size=256, ellipses=None, supersample=4); from the registry, opstomography.get("ellipse_phantom"))
Rasterise a sum of uniform ellipses onto a *size* x *size* slice.
The default is 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 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 -> 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
MAX_IMAGE_ELEMENTS.
• 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.
• ct_reconstruction — py -3.11 examples/ct_reconstruction.py
• poc_ct_fidelity — py -3.11 examples/poc_ct_fidelity.py
• tomography_reconstruct — py -3.11 examples/tomography_reconstruct.py
image2d as input)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.