geom_transform op• Data kinds: voxel → voxel
• Call: import fullseye as fs; fs.ledger.vol_resize(vol, factor=None, shape=None, order=1, spacing=None, mode='nearest', cval=0.0) (implementation को सीधे call करना हो तो import volxform; volxform.vol_resize(vol, factor=None, shape=None, order=1, spacing=None, mode='nearest', cval=0.0), registry से लेना हो तो ops3d.get("vol_resize"))
• Ledger के ज़रिए return value: fullseye.ledger.vol_resize(...) केवल घोषित out type voxel का value लौटाता है (मूल function सहायक जानकारी भी लौटाता है)। जो हिस्सा छोड़ दिया गया है उसकी ज़रूरत हो तो fullseye.ledger.vol_resize.raw(...) का उपयोग करें, या volxform.vol_resize को सीधे call करें।
• मूल function का return: spacing 付き時
volume को नए grid पर resample करता है (scipy.ndimage.zoom, cell semantics)।
> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।
Exactly one of *factor* / *shape* selects the target grid:
• factor — a positive scalar or (fz, fy, fx); the output shape is round(dim * f) per axis (scipy's rule, each >= 1).
• shape — the exact output (D', H', W') (positive integers).
Sampling uses grid_mode=True (cell semantics): a voxel is a *cell*, so an integer upscale f maps input voxel i exactly onto the output block [f*i, f*(i+1)) (exact at order=0), and the volume's physical extent is preserved by the recomputed spacing — not the endpoint-aligned convention of scipy's grid_mode=False default.
*mode* / *cval* set how samples that fall outside the input cells (the outer half-voxel shell of every upscale at order >= 1) are filled. The default "nearest" extends the border voxel, so a constant volume resizes to the same constant and a ramp keeps its end values. Until 2026-09-03 the call was hard-wired to "grid-constant" with cval=0, which blended the outer shell toward 0 — an upscale x2 of an all-ones volume came back with min = 0.42 on its faces, an artefact that then leaked into every downstream measurement. Other accepted modes: "reflect", "mirror", "grid-mirror", "grid-wrap", and "grid-constant" (with *cval*) when a zero-padded border is genuinely wanted. "constant" / "wrap" are rejected with a hint (scipy needs the grid- variants here).
The return shape depends on *spacing*:
• spacing=None (default) — returns the resampled (D', H', W') float64 volume alone.
• *spacing* given ((sz, sy, sx) or a VolumeMeta) — returns a 2-tuple (out, new_spacing) where new_spacing = (sz * D/D', sy * H/H', sx * W/W'), so out.shape * new_spacing == vol.shape * spacing per axis: the physical size in millimetres is invariant. Keep the new spacing — every spacing-aware operator downstream needs it.
*order* is the spline degree (exact integer 0..5; 0 = nearest — the choice for masks / labels, 1 = trilinear — the grey-value default; >1 can overshoot, see the module notes). Shrinking aliases (no band-limiting) — mean-pool with volops.volume_downsample first for large reductions.
Raises ValueError when both or neither of *factor* / *shape* are given, or when the output would exceed MAX_VOXELS (checked before any allocation — a huge factor cannot balloon memory).
• 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 के स्रोत।
• vol_geometry_transform — py -3.11 examples_3d/vol_geometry_transform.py
voxel को input के रूप में लेते हैं)voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa
geom_transform)*Provenance: volxform.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.