The Radon Transform
Parallel-beam X-ray tomography measures the line integrals of the attenuation coefficient μ(x,y) along rays at angle θ offset by distance t from the rotation axis. Collecting these measurements for all angles defines the Radon transform:
p(t, θ) = ∫∫ μ(x,y) δ(x cosθ + y sinθ − t) dx dy
Displaying p(t, θ) as a 2D image with t on the horizontal axis and θ on the vertical axis produces the sinogram — so named because a point source traces a sinusoidal arc across the image. Reconstruction is the inverse problem: recover μ(x,y) from its projections.
Filtered Back-Projection
The exact analytic inverse of the Radon transform is computed via the Fourier slice theorem: the 1D Fourier transform of each projection p(t, θ) equals a radial slice of the 2D Fourier transform of μ(x, y) at angle θ. Direct inversion in frequency space gives filtered back-projection (FBP):
μ(x,y) = ∫₀^π [p(·,θ) * h](x cosθ + y sinθ) dθ
where h is a ramp filter |ω| in frequency space, optionally windowed by a Shepp–Logan, Hamming, or cosine envelope to suppress high-frequency noise amplification.
In the Simulation
Choose a phantom from the built-in library (Shepp–Logan, disc, rectangle, or concentric rings) or sketch a custom object on the canvas. The simulator computes the exact sinogram analytically, then applies filtered back-projection using the WebAssembly kernel for fast reconstruction. Adjustable parameters include:
Number of projection angles (1 to 360) ·
Number of detector pixels ·
Reconstruction filter: ramp, Shepp–Logan, Hamming, cosine ·
Display: phantom, sinogram, or reconstructed cross-section side-by-side.
Observe how undersampling in angle causes streak artefacts, and how the choice of filter trades spatial resolution against noise.