在应用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:为关键点计算描述子