ellipse_sinogram — TOMOGRAPHY 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.

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

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

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

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

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

ct_reconstructionpy -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 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

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