volume_downsample — 3D preprocess op

• Data kinds: voxel → voxel

• Call: import fullseye as fs; fs.ledger.volume_downsample(vol, factor, mode='mean') (implementation को सीधे call करना हो तो import volops; volops.volume_downsample(vol, factor, mode='mean'), registry से लेना हो तो ops3d.get("volume_downsample"))

उपयोग

(D, H, W) volume को हर axis पर integer *factor* से block-pool करता है (data decimation)।

बड़े CT / laminography / simulation volumes को भारी 3-D operators से पहले thin करना ज़रूरी है (Frangi/Sato की सीमा ~256**3 voxels है, देखें MAX_EIGEN_VOXELS)। यह point-cloud वाले voxel_grid_downsample और mesh वाले decimate_qem का volume रूप है — यह Fullseye के *decimation* परिवार का तीसरा हिस्सा है, हर 3-D data sort के लिए एक।

Parameters

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

input volume (float64 में बदला जाता है; NaN/Inf अस्वीकार)।

factor : int or (fz, fy, fx)

हर axis का block size, हर एक >= 1। output shape

(D//fz, H//fy, W//fx) है; अंत का अधूरा block जो पूरा

factor नहीं भर सकता, हटा दिया जाता है (deterministic, किनारे का कोई bias नहीं)।

mode : {'mean', 'max', 'stride'}

• 'mean' — average-pool। subsampling से पहले band-limit करता है (यानी anti-aliasing वाला विकल्प); grey CT / MRI के लिए सही default।

• 'max' — max-pool। पतली चमकीली structures (bone, vessel, defect voxels) को बचाता है जिन्हें averaging धो देती।

• 'stride' — सीधा subsample vol[::fz, ::fy, ::fx] (सबसे तेज़, लेकिन aliasing होती है — कोई pre-filter नहीं)।

Returns

ndarray, shape (D//fz, H//fy, W//fx), float64

downsample किया गया volume। spacing भी उसी factor से scale होती है: input

spacing (sz, sy, sx) mm बदलकर (sz*fz, sy*fy, sx*fx) mm हो जाती है।

Raises

ValueError

input 3-D न हो, factor का कोई component < 1 हो या अपनी axis से बड़ा हो, या

*mode* अज्ञात हो (fail-closed)।

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• depth_sensors — Depth sensors — ranging के सिद्धांत, असली devices के आँकड़े, dropouts कैसे दिखते हैं

संदर्भ (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 करते हैं)

• volume_downsampling — py -3.11 examples_3d/volume_downsampling.py

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

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

इसी category के (preprocess)

statistical_outlier_removal · radius_outlier_removal · voxel_grid_downsample · mls_smooth


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

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