PCL报错,“User Error 1001: argument to num_threads clause must be positive”

在应用OpenMP,可能会报错“User Error 1001: argument to num_threads clause must be positive”。这是由于设置的线程数必须为正,而程序中默认为0,我们不妨手动设置一下:

(1)pcl::NormalEstimationOMP

  //
  //  Compute Normals:计算法线
  //
  pcl::NormalEstimationOMP<PointType, NormalType> norm_est;
  norm_est.setNumberOfThreads(4);   //手动设置线程数
  norm_est.setKSearch (10);         //设置k邻域搜索阈值为10个点
  norm_est.setInputCloud (model);   //设置输入模型点云
  norm_est.compute (*model_normals);//计算点云法线

  norm_est.setInputCloud (scene);
  norm_est.compute (*scene_normals);

(2)pcl::SHOTEstimationOMP

  //
  //  Compute Descriptor for keypoints:为关键点计算描述子
  //
  pcl::SHOTEstimationOMP<PointType, NormalType, DescriptorType> descr_est;
  descr_est.setNumberOfThreads(4);
  descr_est.setRadiusSearch (descr_rad_);     //设置搜索半径

  descr_est.setInputCloud (model_keypoints);  //模型点云的关键点
  descr_est.setInputNormals (model_normals);  //模型点云的法线 
  descr_est.setSearchSurface (model);         //模型点云       
  descr_est.compute (*model_descriptors);     //计算描述子

  descr_est.setInputCloud (scene_keypoints);
  descr_est.setInputNormals (scene_normals);
  descr_est.setSearchSurface (scene);
  descr_est.compute (*scene_descriptors);

猜你喜欢

转载自blog.csdn.net/zfjBIT/article/details/93041681