本文整理汇总了C++中Pose3D::applyTransformAfter方法的典型用法代码示例。如果您正苦于以下问题:C++ Pose3D::applyTransformAfter方法的具体用法?C++ Pose3D::applyTransformAfter怎么用?C++ Pose3D::applyTransformAfter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Pose3D
的用法示例。
在下文中一共展示了Pose3D::applyTransformAfter方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: test_renderer
void test_renderer(Mesh& mesh)
{
MeshRenderer renderer(800, 600);
renderer.setMesh(mesh);
Pose3D pose;
pose.parseAvsFile("mesh_pose.avs");
cv::Mat4b color_image (Size(800,600));
cv::Mat1f depth;
TimeCount tc_render("Rendering 100 times", 1);
for (int i = 0; i < 100; ++i)
{
pose.applyTransformAfter(cv::Vec3f(0.02f, 0, 0), cv::Vec3f(0, 0, 0));
TimeCount tc_render_one("Rendering", 1);
renderer.setMesh(mesh);
float near = 0.3f, far = 5.f;
renderer.setPose(pose, &near, &far);
renderer.renderToImage(color_image, 0);
tc_render_one.stop();
}
tc_render.stop();
// color_image = renderer.colorBuffer();
imwrite("debug_color.png", color_image);
depth = renderer.depthBuffer();
normalize(depth, depth, 0, 255, cv::NORM_MINMAX);
imwrite("debug_depth.png", Mat1b(depth));
}
示例2: rms_optimize_3d
// atomic mean square pose estimation.
double rms_optimize_3d(Pose3D& pose3d,
const std::vector<Point3f>& ref_points,
const std::vector<Point3f>& img_points)
{
std::vector<double> fx;
std::vector<double> initial(6);
reprojection_error_3d f(pose3d, ref_points, img_points);
LevenbergMarquartMinimizer optimizer;
std::fill(stl_bounds(initial), 0);
fx.resize(ref_points.size()*3);
optimizer.minimize(f, initial);
optimizer.diagnoseOutcome();
f.evaluate(initial, fx);
double error = f.outputNorm(initial);
pose3d.applyTransformAfter(Vec3f(initial[3],initial[4],initial[5]), cv::Vec3f(initial[0], initial[1], initial[2]));
return error;
}