algorithms.registration.polyaffine

Module: algorithms.registration.polyaffine

Inheritance diagram for nipy.algorithms.registration.polyaffine:

digraph inheritancef87ded03ae { rankdir=LR; size="8.0, 12.0"; "registration.polyaffine.PolyAffine" [URL="#nipy.algorithms.registration.polyaffine.PolyAffine",fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5)",target="_top"]; "registration.transform.Transform" -> "registration.polyaffine.PolyAffine" [arrowsize=0.5,style="setlinewidth(0.5)"]; "registration.transform.Transform" [URL="nipy.algorithms.registration.transform.html#nipy.algorithms.registration.transform.Transform",fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5)",target="_top",tooltip="A default transformation class"]; }

PolyAffine

class nipy.algorithms.registration.polyaffine.PolyAffine(centers, affines, sigma, glob_affine=None)[source]

Bases: nipy.algorithms.registration.transform.Transform

__init__(centers, affines, sigma, glob_affine=None)[source]

centers: N times 3 array

We are given a set of affine transforms T_i with centers x_i, all in homogeneous coordinates. The polyaffine transform is defined, up to a right composition with a global affine, as:

T(x) = sum_i w_i(x) T_i x

where w_i(x) = g(x-x_i)/Z(x) are normalized Gaussian weights that sum up to one for every x.

affine(i)[source]
affines()[source]
apply(xyz)[source]

xyz is an (N, 3) array

compose(other)[source]

Compose this transform onto another

Parameters

other : Transform

transform that we compose onto

Returns

composed_transform : Transform

a transform implementing the composition of self on other

left_compose(other)[source]
property param