欢迎光临聚酯输送带网站,为您提供优质的聚酯输送带产品,质量优,价格合理

聚酯输送带网站

聚酯输送带网站不但力求让咱们的产品质优价良,传送带充沛满足客户的需求

【输送带平面自动砂带机】PCL自动求解平面法向量的参数化表示

作者:初夏      发布时间:2021-04-13      浏览量:0
一、参考: https://b

一、参考:

https://blog.csdn.net/u011021773/article/details/78247657。

通常,我们需要估计平面的方向,所以我们需要使用法线,这意味着垂直于平面的线。

有一种方法可以在PCL中自动找到法线。我们来看看。

首先,我们假设我们有一个平面点云cloud_xyz

为了求法线,我们首先定义一个对象ne进行法线估计

PCL :正常估计ne;

然后把需要的平面点云传给他

ne . SetInputCloud(cloud _ XYZ);

这种方法在cloud_xyz上寻找每个点的法线方向,是基于每个点附近的点云组成的平面,所以我们需要设置一个半径来估计附近点的范围来计算平面。

ne . SetRadiussearch(0.05);

最后,定义一个法线对象以接受计算的法线

PCL :3360 pointcloud :3360 ptr cloud _ normals(新PCL : pointcloud);

计算并将结果保存在cloud _ normals ne.compute(* cloud _ normals);此时计算出的法线就在这个对象里面,里面的元素一一对应点云。我们需要访问每个点的法线方向,可以这样做。

for(int IX=0;IX points . size();IX){ if(isnan(cloud _ normals-points[IX])。normal _ x)| | isnan(cloud _ normals-points[IX]。normal _ y)| | is nan(cloud _ normals-points[IX]。normal _ z)){ continue;}}

这里的Isnan是判断法线是否为nan,因为如果一个点周围没有足够的点来计算平面,那么法线就会被赋值为nan。需要直接作为数字使用的同学一定要注意这一点,用我的方法来判断。Normal_x是法线的x方向,y z相同。那么PCL计算的法线不知道正方向,需要人来判断正负。最后一个平面的法向量是每个点的法向量之和的平均值。