How To's
SimilarityRegistration
Understanding rotation parameters (versors)
In SimilarityRegistration, former AppSimilarityRegistrationV3, used when registering images with Shape, the config file
allows for setting inital rotations initial_transform_axis_x, initial_transform_axis_y, initial_transform_axis_z. These correspond to the versor components and are calculated as follows:
initial_transform_axis_x = n_x * sin(alpha/2) initial_transform_axis_y = n_y * sin(alpha/2) initial_transform_axis_z = n_z * sin(alpha/2)
where n=[n_x,n_y,n_z]^T is the unit vecotr representing the axis of rotation and alpha is the angle of rotation. Example 45 degree rotation around x-axis:
initial_transform_axis_x = 1 * sin(45/2) = 0.382 initial_transform_axis_y = 0 * sin(45/2) = 0 initial_transform_axis_z = 0 * sin(45/2) = 0
The rotations after registration final_transform_axis_x, final_transform_axis_y, final_transform_axis_z can be interpreted the same way.
ITK provides the functions GetAxis() and GetAngle to obtain [n_x, n_y, n_z] and alpha respectively, which are calculated as follows:
v_1 = initial_transform_axis_x v_2 = initial_transform_axis_y v_3 = initial_transform_axis_z magnitude = sqrt(v_1^2 + v_2^2 + v_3^2) n_x = v_1/magnitude n_y = v_2/magnitude n_z = v_3/magnitude alpha = 2 * atan(magnitude/1)
Statistics and Analysis
JAGS (analysis of Bayesian models using Markov Chain Monte Carlo)
See JAGS Usage.