Utilities Developer Guide

PhysioMotion4D utility classes provide reusable operations for images, transforms, contours, and USD files. They are class-based APIs, not module-level free functions.

Transform Tools

import itk

from physiomotion4d import TransformTools

tools = TransformTools()
transform = itk.transformread("forward_transform.hdf")
moving = itk.imread("moving.mha")
reference = itk.imread("reference.mha")

warped = tools.transform_image(moving, transform, reference)

For PyVista contours:

import itk
import pyvista as pv

from physiomotion4d import TransformTools

mesh = pv.read("heart_t0.vtp")
transform = itk.transformread("forward_transform.hdf")

transformed = TransformTools().transform_pvcontour(mesh, transform)

Contour Tools

import itk

from physiomotion4d import ContourTools

mask = itk.imread("heart_mask.nrrd")
contour = ContourTools().extract_contours(mask)
contour.save("heart_surface.vtp")

USD Tools

from physiomotion4d import USDTools

tools = USDTools()
tools.merge_usd_files(
    "combined.usd",
    ["heart.usd", "lung.usd", "vessels.usd"],
)

USD Anatomy Tools

from pxr import Usd

from physiomotion4d import USDAnatomyTools

stage = Usd.Stage.Open("anatomy.usd")
painter = USDAnatomyTools(stage)
painter.apply_anatomy_material_to_mesh("/World/Heart", "heart")
stage.Export("anatomy_painted.usd")

Image Tools

ImageTools contains conversion and small image helpers used internally by registration and transform utilities. Prefer direct ITK I/O for ordinary example code:

import itk

image = itk.imread("input.nrrd")
itk.imwrite(image, "output.mha")

See Also