当前位置: 首页>>代码示例>>C++>>正文


C++ Candidate::getRMSE方法代码示例

本文整理汇总了C++中Candidate::getRMSE方法的典型用法代码示例。如果您正苦于以下问题:C++ Candidate::getRMSE方法的具体用法?C++ Candidate::getRMSE怎么用?C++ Candidate::getRMSE使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Candidate的用法示例。


在下文中一共展示了Candidate::getRMSE方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: dbp

////////////////////////////////////////////////////
//////////////////  Main  //////////////////////////
////////////////////////////////////////////////////
int
main (int argc, char *argv[])
{
  //take care of command line parameters
  if (argc <3 )
  {
    print_error("Need at least 2 parameters!\n");
    show_help(argv[0]);
    return (0);
  }
  parse_command_line (argc, argv);
  //create a new point cloud to store loaded Target, with and without color
  PointCloud<PointXYZ>::Ptr target (new PointCloud<PointXYZ>);
  PointCloud<PointXYZRGBA>::Ptr cloud (new PointCloud<PointXYZRGBA>);
  PointCloud<PointXYZRGBA>::Ptr cloud_raw (new PointCloud<PointXYZRGBA>);
  //Database path (it needs to be first argument)
  std::string dbp(argv[1]);

  //Load target
  if (pcl::io::loadPCDFile(target_filename, *cloud_raw) == 0)
  {
    //Transform Target into sensor reference frame, if it is already expressed in that frame, transformation will be identity, so no big deal
    Eigen::Vector3f offset (cloud_raw->sensor_origin_(0), cloud_raw->sensor_origin_(1), cloud_raw->sensor_origin_(2));
    Eigen::Quaternionf rot (cloud_raw->sensor_orientation_);
    pcl::transformPointCloud(*cloud_raw, *cloud, offset, rot);
    cloud->sensor_origin_.setZero();
    cloud->sensor_orientation_.setIdentity();
    //Copy and drop color, PEL uses pcl::PointXYZ as default pointtype
    copyPointCloud(*cloud, *target);
    //instantiate a pose estimation object
    pel::interface::PEProgressiveBisection pe;
    //set wanted parameters, others are left as default
    pe.setBisectionFraction(frac);
    pe.setRMSEThreshold(thresh);
    pe.setStepIterations(itera);
    pe.setParam("verbosity", 2); //lets spam a lot
    //Set target for pose estimation
    if (pe.setTarget(target, target_name))
    {//load and set the database
      if (pe.loadAndSetDatabase(dbp))
      {
        //Creat an object to store pose estimation
        Candidate estimation;
        //perform pose estimation
        pe.estimate(estimation);
        //print result
        print_highlight("Target %s was estimated with %s with RMSE of %g\n",target_name.c_str(), estimation.getName().c_str(), estimation.getRMSE());
        print_highlight("Pose Estimation transformation is:\n");
        std::cout<<estimation.getTransformation();
        if (vis)
        {
          //Proceed to visualization
          pcl::visualization::PCLVisualizer viewer("Estimator Viewer");
          //Transform Candidate with pose estimation transformation, so it aligns over Target
          PointCloud<PointXYZ>::Ptr aligned (new PointCloud<PointXYZ>);
          pcl::transformPointCloud(estimation.getCloud(), *aligned, estimation.getTransformation());
          aligned->sensor_origin_.setZero();
          aligned->sensor_orientation_.setIdentity();
          //make estimation cloud green
          pcl::visualization::PointCloudColorHandlerCustom<PointXYZ> aligned_col_handl (aligned, 0, 255, 0);
          //add clouds to viewer
          viewer.addPointCloud(cloud, "target");
          viewer.addPointCloud(aligned, aligned_col_handl, "estimation");
          //visualize axis on origin (i.e. the acquisition sensor of Target)
          viewer.addCoordinateSystem(0.08);
          //add some explanation text
          viewer.addText("Target in full color, Pose Estimation in green.\nClose viewer to quit.", 20, 20, 20, 0,1,0);
          //Start viewer
          while (!viewer.wasStopped())
            viewer.spinOnce();
          //user closed viewer, we are done.
          viewer.close();
        }
      }
      else
      {
        print_error("Error loading Database. Database path must be first command line argument!\n");
        return (0);
      }
    }
    else
    {
      print_error("Error setting a Target.\n");
      return (0);
    }
  }
  return (1);
}
开发者ID:Tabjones,项目名称:Pose-Estimation-Library,代码行数:91,代码来源:estimator_on_demand.cpp


注:本文中的Candidate::getRMSE方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。