Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 获取平面的角点_C++_Point Cloud Library_Point Clouds - Fatal编程技术网

C++ 获取平面的角点

C++ 获取平面的角点,c++,point-cloud-library,point-clouds,C++,Point Cloud Library,Point Clouds,基于本教程: 我已经按照教程中的说明分割了我的平面 pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients); pcl::PointIndices::Ptr inliers (new pcl::PointIndices); // Create the segmentation object pcl::SACSegmentation<pcl::PointXYZ> seg; // Option

基于本教程:

我已经按照教程中的说明分割了我的平面

pcl::ModelCoefficients::Ptr coefficients (new pcl::ModelCoefficients);
pcl::PointIndices::Ptr inliers (new pcl::PointIndices);   // Create the segmentation object  
pcl::SACSegmentation<pcl::PointXYZ> seg;   // Optional  
seg.setOptimizeCoefficients (true);   // Mandatory   
seg.setModelType(pcl::SACMODEL_PLANE);
seg.setMethodType (pcl::SAC_RANSAC);  
seg.setDistanceThreshold (0.01);
seg.setInputCloud (cloud);   
seg.segment (*inliers, *coefficients);

if (inliers->indices.size() == 0) {
   PCL_ERROR ("Could not estimate a planar model for the given dataset.");
   return (-1);  
}

std::cerr << "Model coefficients: " << coefficients->values[0] << " " 
                      << coefficients->values[1] << " "
                      << coefficients->values[2] << " " 
                      << coefficients->values[3] << std::endl;
pcl::modelcortifiers::Ptr系数(新的pcl::modelcortifiers);
pcl::PointIndexes::Ptr内联(新的pcl::PointIndexes);//创建分割对象
pcl::SAC分段seg;//可选的
seg.setoptimize系数(真);//强制性的
seg.setModelType(pcl::SACMODEL_平面);
seg.setMethodType(pcl::SAC_RANSAC);
seg.setDistanceThreshold(0.01);
seg.setInputCloud(云);
分段(*内联线,*系数);
如果(inliers->index.size()==0){
PCL_错误(“无法估计给定数据集的平面模型”);
返回(-1);
}

当你在点云中分割一个平面时,你会发现点位于同一平面上;输出不一定是矩形或正方形;因此,这些角落可能根本不存在

你可以做的是创建一个多边形,但是在点的外部点上迭代,然后构建一个多边形。看一看关于如何从平面上的一组点构建船体的


之后,您可以根据上一个和下一个向量估计多边形每个点的角度。注意角度大于180°的凹多边形

直到最后一段我都能理解答案。上一个和下一个向量是什么意思?我的想法是检查多边形中点之间的角度,对吗?你说的是什么方法?表示已分割平面的二维多边形是一个点列表(位于二维平面上)。迭代它们并计算两个向量之间的角度。根据角度,您可以找到“角”。