restoration op• Data kinds: measurement → voxel
• Call: import fullseye as fs; fs.ledger.vol_gaussian_psf(sigma, truncate=4.0) (to call the implementation directly, import volrestore; volrestore.vol_gaussian_psf(sigma, truncate=4.0); from the registry, ops3d.get("vol_gaussian_psf"))
A normalised (sums to 1) 3-D Gaussian PSF kernel; *sigma* is a scalar or per-axis.
Per-axis *sigma* is (sz, sy, sx), in voxels; the kernel spans +-truncate*sigma per axis (odd size, centre at the middle voxel). The convenient companion to vol_richardson_lucy when the instrument PSF is well approximated as Gaussian. Kernels above PSF_MAX_ELEMENTS (~256^3) raise ValueError — a PSF that large is an input mistake, not an instrument.
Shape: per axis radius r = ceil(truncate * sigma), side length 2r + 1 (odd), giving a (2rz+1, 2ry+1, 2rx+1) float64 array. Axis order is (z, y, x); passing sigma as (sz, sy, sx) maps in that order (anisotropic PSF). The outer product of 3 1-D Gaussians exp(-x^2 / (2 sigma^2)) is divided by its total sum, so the sum is exactly 1 and the centre voxel is the maximum. Units are voxels (divide a PSF width in mm by spacing before passing it).
Arguments and validation (ValueError):
• sigma: a positive finite scalar, or 3 positive finite values. Values so small that squaring (^2) underflows to 0 (below ~1.5e-154) would give 0/0 and are rejected.
• truncate: positive finite value (default 4.0 = cut off at 4σ per side).
• Rejected when the element count prod(2r+1) exceeds PSF_MAX_ELEMENTS (2**24) (motivated by a measured case where σ≈300 nearly allocated 64 GB).
Use: the psf of vol_richardson_lucy(vol, psf). The RL side also renormalises to a sum of 1, so the kernel made here can be passed as is.
• 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.
• deconv_fft_restore — py -3.11 examples_3d/deconv_fft_restore.py
voxel as input)voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa
restoration)*Provenance: volrestore.py — 3D 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.