17#ifndef __registration_transform_initialiser_helpers_h__
18#define __registration_transform_initialiser_helpers_h__
21#include <Eigen/Geometry>
31 namespace Registration
37 template <
class ImageType,
class ValueType>
40 Eigen::Vector3d centre_voxel;
41 centre_voxel[0] = (
static_cast<default_type>(image.size(0)) / 2.0) - 1.0;
42 centre_voxel[1] = (
static_cast<default_type>(image.size(1)) / 2.0) - 1.0;
43 centre_voxel[2] = (
static_cast<default_type>(image.size(2)) / 2.0) - 1.0;
50 Eigen::Vector3d& centre_of_mass,
54 Eigen::Matrix<default_type, Eigen::Dynamic, Eigen::Dynamic>& eigenvectors,
55 Eigen::Matrix<default_type, Eigen::Dynamic, 1>& eigenvals);
71 assert (im1.
ndim() == 4 && im2.
ndim() == 4);
74 if (lmax == -1 or lmax > l) lmax = l;
88 Eigen::Matrix<default_type, Eigen::Dynamic, 1>& sh,
89 Eigen::Matrix<default_type, 3, 1>& centre_of_mass);
98 Eigen::Matrix<default_type, 3, 1> im1_centre_of_mass, im2_centre_of_mass;
99 Eigen::Matrix<default_type, Eigen::Dynamic, 1> sh1, sh2;
112 transform (transform),
115 contrast_settings (contrast) { }
135 Eigen::Vector3d im1_centre, im2_centre;
136 Eigen::Matrix<default_type, 3, 1> im1_centre_of_mass, im2_centre_of_mass;
137 Eigen::Matrix<default_type, 3, 3> im1_covariance_matrix, im2_covariance_matrix;
138 Eigen::Matrix<default_type, Eigen::Dynamic, Eigen::Dynamic> im1_evec, im2_evec;
139 Eigen::Matrix<default_type, Eigen::Dynamic, 1> im1_eval, im2_eval;
ssize_t size(size_t axis) const
size_t LforN(int N)
returns the largest lmax given N parameters
size_t NforL(int lmax)
the number of (even-degree) coefficients for the given value of lmax
double default_type
the default type used throughout MRtrix