vol_fft_lowpass — 3D frequency op

• 資料種類:voxel → voxel

• 呼叫: import fullseye as fs; fs.ledger.vol_fft_lowpass(vol, cutoff, spacing=None)(要直接呼叫實作,import volfreq; volfreq.vol_fft_lowpass(vol, cutoff, spacing=None);從台帳取用則 ops3d.get("vol_fft_lowpass"))

用法

高斯低通:保留比 1/cutoff 更粗的結構(體素單位或實際尺寸)。

更細的細節被平滑地衰減。傳遞函數 exp(-f^2 / (2 cutoff^2)) —— DC 分量(平均強度)原樣

通過。典型用途: 擷取照明/厚度漂移。

步驟: 用 np.fft.rfftn 做實 FFT → 依各頻率 bin 的大小 |f| = sqrt(fz^2 + fy^2 + fx^2) 乘以傳遞函數 exp(-|f|^2 / (2 cutoff^2)) → 用 irfftn 轉換回來。回傳與輸入相同 (D, H, W) 的 float64(傳入 spacing 也不改變 shape)。

參數:

• cutoff: 正有限值。spacing=None 時為 cycles/voxel(Nyquist = 0.5), 傳入 spacing=(sz, sy, sx)(mm,或帶 spacing_mm 的 volio.VolumeMeta)時為 cycles/mm。各向異性 voxel 時按軸用 fftfreq(n, d=spacing) 換算為物理頻率,因此相同的物理結構得到相同處理。

• 衰減為 Gaussian,在 |f| = cutoff 處為 exp(-1/2) ≈ 0.61(不是 brick-wall。不會出現振鈴)。

驗證(ValueError): 不是 3-D / NaN、Inf / voxel 數超過 MAX_VOXELS(1 << 27) / cutoff 非正、非有限、小到 2 次方會下溢 / spacing 長度不為 3、非正。

注意: FFT 將 volume 視為週期性的。若相對兩面的輝度差很大,會跨越 wrap 洩漏(不會默默加窗)。vol_fft_highpass 嚴格是其補集 1 - lowpass,兩者之和等於輸入。

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• deconv_fft_restore — py -3.11 examples_3d/deconv_fft_restore.py

型別可銜接的下一個運算子(可接受 voxel 作為輸入)

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

同類別(frequency)

vol_fft_highpass · vol_fft_bandpass


*Provenance: volfreq.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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