fullseye

volume_downsample — 3D preprocess op

使い方

Block-pool a (D, H, W) volume by an integer factor per axis (data 間引き).

Large CT / laminography / simulation volumes must be thinned before the heavier 3-D operators (Frangi/Sato are capped at ~256*3 voxels, see MAX_EIGEN_VOXELS). This is the volume analogue of the point-cloud voxel_grid_downsample and the mesh decimate_qem — the third leg of Fullseye’s *間引き (decimation) family, one per 3-D data sort.

Parameters

vol : array_like, shape (D, H, W) Input volume (coerced to float64; NaN/Inf rejected). factor : int or (fz, fy, fx) Block size per axis, each >= 1. The output shape is (D//fz, H//fy, W//fx); a trailing partial block that cannot fill a full factor is dropped (deterministic, no edge bias). mode : {‘mean’, ‘max’, ‘stride’} * 'mean' — average-pool. Band-limits before subsampling (the anti-aliasing choice); the right default for grey CT / MRI. * 'max' — max-pool. Preserves thin bright structures (bone, vessel, defect voxels) that averaging would wash out. * 'stride' — plain subsample vol[::fz, ::fy, ::fx] (fastest, but aliases — no pre-filter).

Returns

ndarray, shape (D//fz, H//fy, W//fx), float64 The downsampled volume. Spacing scales by the same factor: an input spacing (sz, sy, sx) mm becomes (sz*fz, sy*fy, sx*fx) mm.

Raises

ValueError Non-3-D input, a factor component < 1 or larger than its axis, or an unknown mode (fail-closed).

背景知識ガイド(この op の手前にある物理・規約)

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(voxel を入力に取れる)

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

同カテゴリ(preprocess)

statistical_outlier_removal · radius_outlier_removal · voxel_grid_downsample · mls_smooth


Provenance: volops.py — 3D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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