fullseye

vol_affine — 3D geom_transform op

使い方

General affine resampling (scipy.ndimage.affine_transform).

Convention (pinned — read this before writing a matrix): this is scipy’s pull (output -> input) resampler. For every output voxel at integer coordinate o = (z, y, x) the result is the input interpolated at matrix @ o + offset::

out[o] = vol[ matrix @ o + offset ]        # (z, y, x) order, voxels

Consequences: matrix = 2*I makes the object appear half size (each output step strides two input voxels); offset = (1, 2, 3) moves the object by (-1, -2, -3). To push content through a forward transform T (the pose from a registration), pass the inverse of T. The test suite machine-pins this direction.

matrix is either a (3, 3) linear part (with offset a separate length-3 translation) or a (4, 4) homogeneous matrix [[A, t], [0, 0, 0, 1]] — then A / t are taken from the matrix, the bottom row must be exactly (0, 0, 0, 1), and offset must stay at its zero default (a second translation would be ambiguous). Any other shape raises ValueError.

output_shape defaults to the input shape; an explicit one is cap-checked against MAX_VOXELS before allocation. order is the spline degree (exact integer 0..5). Voxels whose source coordinate falls outside the input are filled per mode/cval.

Returns a float64 volume of output_shape.

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

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

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

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

同カテゴリ(geom_transform)

vol_resize · vol_rotate


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

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