本文整理汇总了C++中eigen::Quaternionf::setIdentity方法的典型用法代码示例。如果您正苦于以下问题:C++ Quaternionf::setIdentity方法的具体用法?C++ Quaternionf::setIdentity怎么用?C++ Quaternionf::setIdentity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类eigen::Quaternionf
的用法示例。
在下文中一共展示了Quaternionf::setIdentity方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: detectPattern
int PatternDetector::detectPattern(cv::Mat& image_in, Eigen::Vector3f& translation, Eigen::Quaternionf& orientation,
cv::Mat& image_out)
{
translation.setZero();
orientation.setIdentity();
bool found = false;
observation_pts_t observation_points;
switch (pattern_type)
{
case ASYMMETRIC_CIRCLES_GRID:
found = cv::findCirclesGrid(image_in, grid_size, observation_points,
cv::CALIB_CB_ASYMMETRIC_GRID | cv::CALIB_CB_CLUSTERING);
break;
case CHESSBOARD:
found = cv::findChessboardCorners(image_in, grid_size, observation_points, cv::CALIB_CB_ADAPTIVE_THRESH);
break;
case CIRCLES_GRID:
found = cv::findCirclesGrid(image_in, grid_size, observation_points, cv::CALIB_CB_SYMMETRIC_GRID);
break;
}
if (found)
{
// Do subpixel ONLY IF THE PATTERN IS A CHESSBOARD
if (pattern_type == CHESSBOARD)
{
cv::cornerSubPix(image_in, observation_points, cv::Size(5, 5), cv::Size(-1, -1),
cv::TermCriteria(cv::TermCriteria::MAX_ITER + cv::TermCriteria::EPS, 100, 0.01));
}
cv::solvePnP(cv::Mat(ideal_points), cv::Mat(observation_points), K, D, rvec, tvec, false);
cv::Rodrigues(rvec, R); //take the 3x1 rotation representation to a 3x3 rotation matrix.
cv::drawChessboardCorners(image_out, grid_size, cv::Mat(observation_points), found);
convertCVtoEigen(tvec, R, translation, orientation);
}
return found;
}