本文整理汇总了C++中TransformationParameters::block方法的典型用法代码示例。如果您正苦于以下问题:C++ TransformationParameters::block方法的具体用法?C++ TransformationParameters::block怎么用?C++ TransformationParameters::block使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TransformationParameters
的用法示例。
在下文中一共展示了TransformationParameters::block方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
typename PointMatcher<T>::TransformationParameters TransformationsImpl<T>::RigidTransformation::correctParameters(const TransformationParameters& parameters) const
{
TransformationParameters ortho = parameters;
if(ortho.cols() == 4)
{
const Eigen::Matrix<T, 3, 1> col0 = parameters.block(0, 0, 3, 1).normalized();
const Eigen::Matrix<T, 3, 1> col1 = parameters.block(0, 1, 3, 1).normalized();
const Eigen::Matrix<T, 3, 1> col2 = parameters.block(0, 2, 3, 1).normalized();
ortho.block(0, 0, 3, 1) = col1.cross(col2);
ortho.block(0, 1, 3, 1) = col2.cross(col0);
ortho.block(0, 2, 3, 1) = col2;
}
else if(ortho.cols() == 3)
{
// R = [ a b]
// [-b a]
// mean of a and b
T a = (parameters(0,0) + parameters(1,1))/2;
T b = (-parameters(1,0) + parameters(0,1))/2;
T sum = sqrt(pow(a,2) + pow(b,2));
a = a/sum;
b = b/sum;
ortho(0,0) = a; ortho(0,1) = b;
ortho(1,0) = -b; ortho(1,1) = a;
}
return ortho;
}