Itk计算转换矩阵以对齐两个对象

时间:2017-11-11 11:18:36

标签: c++ coordinate-transformation itk

为itk的居中仿射变换计算变换矩阵的正确方法是什么?我有平移和方向余弦的矢量,但我无法得到正确的结果(对齐的轴旋转不匹配)。我正在使用itk的居中仿射变换功能旋转并输入相对于每个轴的方向余弦。

代码的转录将是:

itk::imageType::PointType angle_vector, PointA, PointB;

angle_vector[0]= atan((PointA[1] - PointB[1])/ (PointA[0] - PointB[0]));
angle_vector[1]= atan((PointA[0] - PointB[0])/ (PointA[1] - PointB[1]));
angle_vector[2]= atan((PointA[1] - PointB[1])/ (PointA[2] - PointB[2]));

itk::centeredAffineTransformation::Pointer transf = itk::centeredAffineTransformation::New();

transf->Rotate(0,1,angle_vector[0]);
transf->Rotate(0,2,angle_vector[1]);
transf->Rotate(1,2,angle_vector[2]);
transf->SetCenter(PointA);

等,使用利用转换的过滤器

0 个答案:

没有答案