Algorithms for Registration, Error Prediction, and Rotation Parameter Conversion in Matlab
Rigid point registration
- Registration with isotropic weighting: point_register.m
- Registers one set of points to a corresponding set with inhomogeneous, isotropic weighting or with no weighting. The points may be of any dimension (1D, 2D, 3D, 4D, ...). It can handle cases in which the number of points is smaller than the dimension (e.g., two points that are three-dimensional), and it can handle cases in which the points are co-linear. The rotation matrix is always proper. It is closed form (uses singular-value decomposition).
- Registration with general weighting: weighted_point_register.m
- Registers one set of three or more three-dimensional points to a corresponding set with any specified weighting--homogeneous or inhomogeneous and isotropic or anisotropic. It is iterative, but it requires no parameter specifications except for an optional convergence threshold, and it typically converges in less than a millisecond.
- Isotropic Target Registration Error(TRE) Approximation: treapprox.m
- Gives the expected RMS target registration error when (a) the fiducial localization errors are uncorrelated with zero mean, homogeneous, and istotropic and (b) the registration algorithm used is unweighted.
- General TRE and Fiducial Registration Error (FRE) Approximation: tre_fre_approx.m
- Gives the expected RMS target registration error, RMS fiducial registration error, and their respective covariance matrices when fiducial localization errors are uncorrelated with zero mean. The fiducial localization errors may be inhomogeneous and/or anistropic, and the registration algorithm may have any weightings (i.e., may be inhomgeneous and anisotropic and need not correspond to the fiducial localiztion error).
Parameter conversions for rotation
- To calculate a rotation matrix from Euler angles: from_euler.m
- To calculate Euler angles from a rotation matrix: to_euler.m
- To calculate a rotation matrix from axis & angle: from_axis.m
- To calculate axis & angle from a rotation matrix: to_axis.m