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.