vol_fft_lowpass — 3D frequency op

• Data kinds: voxel → voxel

• Call: import fullseye as fs; fs.ledger.vol_fft_lowpass(vol, cutoff, spacing=None) (implementation को सीधे call करना हो तो import volfreq; volfreq.vol_fft_lowpass(vol, cutoff, spacing=None), registry से लेना हो तो ops3d.get("vol_fft_lowpass"))

उपयोग

Gaussian low-pass: 1/cutoff से मोटी structure रखता है (voxels में, या *spacing* के साथ mm में)।

बारीक detail धीरे-धीरे attenuate होता है। Transfer function exp(-f^2 / (2 cutoff^2)) — DC level (mean intensity) बिना बदले गुज़रता है। सामान्य उपयोग: illumination/thickness drift निकालना।

प्रक्रिया: np.fft.rfftn से real FFT → हर frequency bin के परिमाण |f| = sqrt(fz^2 + fy^2 + fx^2) के अनुसार transfer function exp(-|f|^2 / (2 cutoff^2)) से गुणा → irfftn से वापस। Input जैसा ही (D, H, W) का float64 लौटाता है (spacing देने पर भी shape नहीं बदलता)।

Arguments:

• cutoff: धनात्मक finite मान। spacing=None हो तो cycles/voxel (Nyquist = 0.5), spacing=(sz, sy, sx) (mm, या spacing_mm वाला volio.VolumeMeta) देने पर cycles/mm। Anisotropic voxel में हर axis के लिए fftfreq(n, d=spacing) से physical frequency में बदला जाता है, इसलिए एक ही physical structure के साथ एक जैसा व्यवहार होता है।

• Attenuation Gaussian है, |f| = cutoff पर exp(-1/2) ≈ 0.61 (brick-wall नहीं। Ringing नहीं आती)।

जाँच (ValueError): 3-D न हो / NaN या Inf / voxel की संख्या MAX_VOXELS (1 << 27) से ज़्यादा / cutoff धनात्मक न हो, finite न हो, या इतना छोटा कि उसकी 2 घात underflow हो जाए / spacing की लंबाई 3 न हो या धनात्मक न हो।

सावधानी: FFT volume को periodic मानता है। आमने-सामने के faces में luminance का अंतर बड़ा हो तो wrap के पार leak होता है (चुपचाप windowing नहीं की जाती)। vol_fft_highpass ठीक इसका complement 1 - lowpass है, और दोनों का योग input के बराबर होता है।

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• deconv_fft_restore — py -3.11 examples_3d/deconv_fft_restore.py

वे अगले ops जिनसे type जुड़ता है (voxel को input के रूप में लेते हैं)

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

इसी category के (frequency)

vol_fft_highpass · vol_fft_bandpass


*Provenance: volfreq.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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