vol_gamma — 3D gray op

• Data kinds: voxel → voxel

• Call: import fullseye as fs; fs.ledger.vol_gamma(vol, gamma) (to call the implementation directly, import volgray; volgray.vol_gamma(vol, gamma); from the registry, ops3d.get("vol_gamma"))

Usage

Gamma (power-law) correction on the volume's own range (HALCON pow_image).

Normalises [min, max] to [0, 1], applies t**gamma, and maps the result back to the original [min, max] — so the volume's extremes are fixed points and only the mid-tones move: gamma > 1 darkens them, gamma < 1 brightens them, gamma == 1 is the identity. The transform is strictly monotone, so intensity *ordering* is always preserved.

A constant volume is returned unchanged (no range to normalise — see the module docstring's flat-volume note).

Parameters

vol : array_like, shape (D, H, W)

Input volume (coerced to float64; NaN/Inf rejected).

gamma : float

Exponent, > 0 (fail-closed: gamma <= 0 is not a monotone

intensity map).

Returns

ndarray, shape (D, H, W), float64

The gamma-corrected volume, same [min, max] range as the input.

Raises

ValueError

Non-3-D / non-finite input, or gamma <= 0.

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.

Runnable examples (verified samples that actually call this op)

• gray_window_level — py -3.11 examples_3d/gray_window_level.py

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

voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa

Same category (gray)

vol_window_level · vol_equalize · vol_stretch


*Provenance: volgray.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.