1. 输入输出
1.1 读取点云文件(pcl.readCloud)
| 算子名称 |
pcl.readCloud |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
string_t |
name |
输入点云 |
| 返回值 |
PCL_PointCloud_ptr |
|
点云图像 |
| 功能描述 |
提取或排除索引点云 |
|
脚本示例:
cloud = pcl.readCloud("cloud/lft_/214138.pcd")
1.2 点云文件保存(pcl.writeCloud)
| 算子名称 |
pcl.writeCloud |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
string_t |
name |
输入点云 |
|
PCL_PointCloud_ptr |
inCloud |
输入点云 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
将所读取点云,书写为文件 |
|
脚本示例:
pcl.writeCloud(file_name .. "pcd", cloud)
1.3 显示点云图像(pcl.showCloud)
| 算子名称 |
pcl.showCloud |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
string_t |
name |
输入点云 |
|
PCL_PointCloud_ptr |
cloudIn |
输入点云 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
显示所读取到的点云数据,以图像形式显示 |
|
脚本实例:
pcl.showCloud("pcl_cloud", cloud)
1.4 显示范围(pcl.showRange)
| 算子名称 |
pcl.showRange |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
string_t |
name |
输入点云 |
|
PCL_RangeImage-ptr |
range |
范围 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
显示点云图像的范围 |
|
2.过滤
2.1 投影点云到平面(pcl.doProjectInliers)
| 算子名称 |
pcl.doProjectInliers |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
PCL_ModelCoefficientsPtr |
inCoefficients |
投影平面模型系数 |
| 返回值 |
PCL_PointCloud_ptr |
|
投影后的平面点云 |
| 功能描述 |
将输入点云投影到指定平面上 |
|
脚本示例:
inCloud = cloudinCoefficients = plane --平面系数来自于pcl.doPlaneSegment平面提取cloud = pcl.ProjectInliers(inCloud, inCoefficients)
2.2 提取点云索引(pcl.doExtractIndices)
| 算子名称 |
pcl.doExtractIndices |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
PCL_PointIndicesPtr |
inIndices |
点云索引 |
|
bool |
inNegative |
提取或排除索引点 |
| 返回值 |
PCL_PointCloud_ptr |
|
提取后的点云 |
| 功能描述 |
提取或排除索引点云 |
|
脚本示例:
inCloud = cloudinIndices = 1inNegative = falsecloud = pcl.doExtractIndices(inCloud, inIndices, inNegative)
2.3 复制点云图像(pcl.copyPointCloud)
| 算子名称 |
pcl.docopyPointCloud |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
PCL_PointIndices_ptr |
inDices |
点云集群 |
| 返回值 |
PCL_PointCloud_ptr |
|
提取后的点云 |
| 功能描述 |
用于复制点云图像 |
|
脚本示例:
inCloud = cloudinDices = 50cloud = pcl.docopyPointCloud(inCloud, inDices)
2.4 点云坐标范围(pcl.doPassThrough)
| 算子名称 |
pcl.doPassThrough |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
string_t |
field |
坐标范围 |
|
float |
li_mmin |
过滤字段范围起始值 |
|
float |
li_max |
过滤字段范围末尾值 |
|
bool |
negative |
是否保留范围内 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
根据坐标范围提取的点云 |
|
脚本示例:
inCloud = cloudfield = "x"li_mmin = 1.5li_min = 2.5negative = falsecloud = pcl.doPassThrough(inCloud, field, li_mmin, li_max, negative)
2.5 中值过滤(pcl.doMedianFilter)
| 算子名称 |
pcl.doMedianFilter |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
PCL_PointCloud_ptr |
cloud_filtered |
执行滤波保存过滤结果在过滤参数 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
使拥有不同灰度的点看起来更接近它的相邻点。 |
|
脚本示例:
cloud = pcl.doMedianFilter(cloud, cloud_filtered)
2.6 离群点去除(pcl.doOutlierRemoval)
| 算子名称 |
pcl.doOutlierRemoval |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
int |
nr_k |
离群数量标准 |
|
double |
std_mul |
离群距离半径 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
去除点云离群点,完善坐标范围内点云 |
|
脚本示例:
inCloud = cloudnr_k = 50std_mul = 1.0cloud = pcl.doOutlierRemoval(inCloud, nr_k, std_mul)
2.7 均匀采样(pcl.doUniformSampling)
| 算子名称 |
pcl.doUniformSampling |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
model |
输入点云 |
|
double |
modelss |
半径 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
输出点云索引 |
|
脚本示例:
model = cloudmodel_ss_ = 1.0cloud = pcl.doUniformSampling(model, model_ss_)
2.8 体素网格过滤(pcl.doVoxelGridFilter)
| 算子名称 |
pcl.doVoxelGridFilter |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
float |
leafSize |
滤波器处理时采用的体素大小 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
是体素化网格方法实现下采样,可在保持点云形状特征的情况下减少点云的数量,在提高配准、曲面重建、形状识别等算法的速度。 |
|
脚本示例:
inCloud = cloudleafSize = 0.01cloud = pcl.doVoxelGridFilter(cloud, 0.01)
2.9 双向过滤(pcl.doBilateralFilter)
| 算子名称 |
pcl.doBilateralFilter |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
double |
sigma_s |
双边滤波器用于空间邻域/窗口的高斯的标准偏差 |
|
double |
sigma_r |
高斯的标注偏差用于控制相邻像素由于强度差异而下降多少 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
通过取邻近采样点的加权平均来修正当前采样点的位置,从而达到滤波效果;同时也会有选择地剔除部分于当前采样点差异较大的相邻采样点,从而达到保存原特征的目的。 |
|
脚本示例:
inCloud = cloudsigma_s = 5.0sigma_r = 0.003cloud = pcl.doBilateralFilter(inCloud, sigma_s, sigma_r)
2.10 立体裁剪(pcl.doBoxClipper3D)
| 算子名称 |
pcl.doBoxClipper3D |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
src_cloud |
输入点云 |
|
PCL_Vector3f_in |
rotation |
旋转角度 |
|
PCL_Vector3f_in |
translation |
平移距离 |
|
PCL_Vector3f_in |
box_size |
边框大小 |
|
bool |
negative |
分割方向 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
在三维点云下自定义位置及大小分割点云空间 |
|
脚本示例:
src_cloud = cloudrotation = 1.0translation = 1.0box_size = 1.0negative = falsecloud = pcl.doBoxClipper3D(src_cloud, rotation, translation, box_size, negative)
2.11 平面裁剪(pcl.doPlaneClipper3D)
| 算子名称 |
pcl.doPlaneClipper3D |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
src_cloud |
输入点云 |
|
PCL_Vector4f_in |
plane |
平面参数 |
|
bool |
negative |
分割方向 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
在三维点云下任意平面分割点云空间 |
|
脚本示例:
src_cloud = cloudplane = 0, 0, 0, 0.05negative = falsecloud = pcl.doPlaneClipper3D(cloud, plane, false)
2.12 YOLO识别框内点云(pcl.doViewportClipper)
| 算子名称 |
pcl.doViewportClipper |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
BoundingBox |
bbox |
识别框 |
|
fload |
dw |
扩大宽度 |
|
fload |
dh |
扩大高度 |
| 返回值 |
PCL_PointCloud_ptr |
|
识别框内部点云图 |
| 功能描述 |
拣选识别框内点云 |
|
脚本示例:
inCloud = cloudbbox = bbox_draw --该参数来于绘制识别框结果dw = 0.9dh = 0.0cloud = pcl.doViewportClipper(inCloud, bbox_draw, dw, dh)
2.13 阴影点去除(pcl.doShadowPointsRemoval)
| 算子名称 |
pcl.doShadowPointsRemoval |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
double |
shadowThreshold |
阴影阈值 |
|
double |
normalsThreshold |
标注阈值 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
去除因光照影响的阴影点 |
|
脚本示例:
inCloud = cloudshadowThreshold = 0.1normalsThreshold = 0.3cloud = pcl.doShadowPointsRemoval(inCloud, shadowThreshold, normalsThreshold)
2.14 轮廓过滤(pcl.doCropHullFilter)
| 算子名称 |
pcl.doCropHullFilter |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
PCL_PointCloud_ptr |
inSurfaceHull |
封闭多边形形状 |
|
PCL_Polygons_ptr |
inPolygons |
封闭多边形顶点 |
|
int |
inDimension |
设置维度 |
|
bool |
CropOutside |
移除内部或外部的点 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
过滤器将移除轮廓外部的点或去除里面的点 |
|
脚本示例:
inCloud = bound_up --取自点云膨胀inSurfaceHull = bound_tu --取自凸包提取inPolygons = polygons_tu --取自凸包提取 inDimension = 2CropOutside = falsecloud = pcl.doCropHullFilter(inCloud, inSurfaceHull, inPolygons, inDimension, CropOutside)
3.分割
3.1 聚类提取(pcl.doClusterExtract)
| 算子名称 |
pcl.doClusterExtract |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
double |
tolerance |
形位公差,聚类最小值0.1m |
|
int |
min_size |
最小点云数 |
|
int |
max_size |
最大点云数 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
将点云集群裁剪分割 |
|
脚本示例:
inCloud = cloudtolerance = 0.05min_size = 100max_size = 25000cloud = pcl.doClusterExtract(inCloud, tolerance, min_size, max_size)
3.2 平面提取(pcl.doPlaneSegment)
| 算子名称 |
pcl.doPlaneSegment |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
double |
inDistanceThreshold |
阈值(内点到模型的距离) |
|
double |
inDistanceWeight |
表面法线权重系数(压缩厚度) |
|
PCL_Vector3f |
inAxis |
坐标范围 |
|
double |
inEpsAngle |
提取角度 |
|
bool |
inNegative |
是否保留范围内 |
| 返回值 |
PCL_PointCloud_ptr |
outCloud |
坐标范围内点云 |
| 功能描述 |
用于将截取出的正面点云图,按X轴方向压缩。 |
|
脚本示例:
inCloud = cloudinDistanceThreshold = 0.1inDistanceWeight = 0.01inAxis = asix_xinEpsAngle = 15.0inNegative = falsecloud, plane = pcl.doPlaneSegment(inCloud, inDistanceThreshold, inDistanceWeight, inAxis, inEpsAngle, inNegative)
3.3 平面部分平移(pcl.doPlaneSegmentRansac)
| 算子名称 |
pcl.doPlaneSegmentRansac |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
PCL_ModelCoefficients_out |
outCoefficients |
模型系数 |
|
double |
distance_threshold |
距离阈值(离散点到模型距离) |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
让平面提取中的平面分割更加准确 |
|
3.4 平行线分割(pcl.doRansacParallelLine)
| 算子名称 |
pcl.doRansacParallelLine |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
pcl::PointIndices::Ptr |
inliners |
点数索引 |
|
pcl::ModelCoefficients::Ptr |
coefficients |
模型系数 |
|
double |
distance_threshold |
距离阈值(离散点到模型距离) |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
|
|
3.5 法线多边形线段分割(pcl.doPlaneSegmentFromNormals)
| 算子名称 |
pcl.doPlaneSegmentFromNormals |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
PCL_ModelCoefficients_out |
outCoefficients |
模型系数 |
|
PCL_Normals_ptr |
inNormals |
法线 |
|
double |
inDistanceThreshold |
内点到模型的距离允许最大值 |
|
double |
inDistanceWeight |
表面法线权重系数 |
|
PCL_Vector3f |
inAxis |
数轴方向(垂直模型的轴) |
|
double |
inEpsAngle |
法线和给定轴之间的最大允许差值 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
|
|
3.6 聚类分割(pcl.segment_RegionGrowing)
| 算子名称 |
pcl.segment_RegionGrowing |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
PCL_Normals_ptr |
cloud_normals |
输入的法线 |
|
uint32_t |
Neighbours |
邻域点的个数 |
|
float |
Smoothness |
平滑度 |
|
float |
Curvature |
曲率的阈值 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
将物理或抽象对象的集合分成由类似的对象组成的多个类 |
|
脚本示例:
inCloud = cloudcloud_normals = normalsNeighbours = 500Smoothness = 3.0 / 180.0 * M_PICurvature = 1.0cloud = pcl.segment_RegionGrowing(inCloud, cloud_normals, Neighbours, Smoothness, Curvature)
3.7 垂直平面移除(pcl.doPerpendicularPlaneRemoval)
| 算子名称 |
pcl.doPerpendicularPlaneRemoval |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
double |
distance |
距离 |
|
double |
degree |
角度 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
移出指定角度的相对垂直平面 |
|
脚本示例:
inCloud = clouddistance = 0.01degree = 25.0cloud = pcl.doPerpendicularPlaneRemoval(inCloud, distance, degree)
3.8 渐进形态滤波(pcl.doProgressiveMorphologicalFilter)
| 算子名称 |
pcl.doProgressiveMorphologicalFilter |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
提取非地面点 |
|
3.9 水平投影分割(pcl.doGroundPlaneSegment)
| 算子名称 |
pcl.doGroundPlaneSegment |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
水平投影分割 |
|
4.特征
4.1 提取点云平面外边界(pcl.computeBoundary)
| 算子名称 |
pcl.computeBoundary |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
int |
k |
阈值(与识别精度成正比) |
|
double |
radius |
边界估计所需半径 |
|
float |
angle |
边界估计角度阈值 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
用于提取已经投影至平面的点云的外边界 |
|
脚本示例:
inCloud = cloudk = 0radius = 0.05angle = 90bound = pcl.computeBoundary(inCloud, k, radius, angle)
4.2 计算法线(computeNormals)
| 算子名称 |
computeNormals |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
int |
k |
均值 |
|
double |
radius |
边界估计所需半径 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
指定法线方式 |
|
4.3 计算脚本(computeDescriptors)
| 算子名称 |
computeDescriptors |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_Descriptors_ptr |
model_descriptors |
模板点云的描述子 |
|
PCL_Descriptors_ptr |
scene_descriptors |
场景点云的描述子 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
计算点云描述子 |
|
4.4 计算参考框架(computeReferenceFrame)
| 算子名称 |
computeReferenceFrame |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
model |
模型 |
|
PCL_PointCloud_ptr |
model_keypoints |
模型关键点 |
|
PCL_PointCloud_ptr |
model_normals |
模型法线 |
|
float |
descrrad |
搜索半径 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
根据模型参数计算得到参考框架 |
|
4.5 计算边框界(computeBoundingBox)
| 算子名称 |
computeBoundingBox |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
计算点云图像边框界线 |
|
5.识别
5.1 霍夫识别(pcl.doHoughRecognize)
| 算子名称 |
pcl.doHoughRecognize |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
model |
输入模型 |
|
PCL_Normals_ptr |
model_normals |
输入模型法线 |
|
PCL_PointCloud_ptr |
model_keypoints |
输入模型关键点 |
|
PCL_Descriptors_ptr |
model_descriptors |
输入模型描述点 |
|
PCL_PointCloud_ptr |
scene |
输入场景 |
|
PCL_Normals_ptr |
scene_normals |
输入场景法线 |
|
PCL_PointCloud_ptr |
scene_keypoints |
输入场景关键点 |
|
PCL_Descriptors_ptr |
scene_descriptors |
输入场景描述点 |
| 返回值 |
|
|
|
| 功能描述 |
计算点云图像边框界线 |
|
脚本示例:
model = model_normals = model_keypoints = model_descriptors = scene = scene_normals = scene_keypoints = scene_descriptors =
5.2 几何识别(pcl.doGeometricRecognize)
| 算子名称 |
pcl.doGeometricRecognize |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
model |
输入模型 |
|
PCL_Normals_ptr |
model_normals |
输入模型法线 |
|
PCL_PointCloud_ptr |
model_keypoints |
输入模型关键点 |
|
PCL_Descriptors_ptr |
model_descriptors |
输入模型描述点 |
|
PCL_PointCloud_ptr |
scene |
输入场景 |
|
PCL_Normals_ptr |
scene_normals |
输入场景法线 |
|
PCL_PointCloud_ptr |
scene_keypoints |
输入场景关键点 |
|
PCL_Descriptors_ptr |
scene_descriptors |
输入场景描述点 |
| 返回值 |
|
|
|
| 功能描述 |
计算点云图像边框界线 |
|
脚本示例:
model = model_normals = model_keypoints = model_descriptors = scene = scene_normals = scene_keypoints = scene_descriptors =
6.表面
6.1 点云膨胀(pcl.doMovingLeastSquares)
| 算子名称 |
pcl.doMovingLeastSquares |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
double |
inSearchRadius |
搜索半径 |
|
double |
inUpsamplingRadius |
采样半径 |
|
double |
inUpsamplingStepSize |
采样步数大小 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
对点云图像进行膨胀处理 |
|
脚本示例:
inCloud = bound --点云平面外边界,取自computeBoundaryinSearchRadius = 0.05inUpsamplingRadius = 0.15inUpsamplingStepSize = 0.005bound_up = pcl.doMovingLeastSquares(inCloud, inSearchRadius, inUpsamplingRadius, inUpsamplingStepSize)
6.2 随机均匀密度(pcl.doRandomUniformDensity)
| 算子名称 |
pcl.doRandomUniformDensity |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
double |
inSearchRadius |
搜索半径 |
|
int |
inRadiusPoints |
半径点 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
将点云进行随机均匀分布处理 |
|
脚本示例:
inCloud = cloudinSearchRadius = 0.05inRadiusPoints = 50cloud = pcl.doRandomUniformDensity(inCloud, inSearchRadius, inRadiusPoints)
6.3 体素网格膨胀(pcl.doVoxelGridDilation)
| 算子名称 |
pcl.doVoxelGridDilation |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
double |
inSearchRadius |
搜索半径 |
|
float |
inVoxelSize |
体素大小 |
|
int |
inIterations |
迭代次数 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
对三维图像进行膨胀处理 |
|
脚本示例:
inCloud = cloudinSearchRadius = 0.05inVoxelSize = 0.01inIterations = 1incloud = pcl.doVoxelGridDilation(inCloud, inSearchRadius, inVoxeSize, inIterations)
6.4 提取凸包(pcl.doConvexHull)
| 算子名称 |
pcl.doConvexHull |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
int |
inDimension |
维度 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
提取指定维度下点云的凸包 |
|
脚本示例:
inCloud = cloudinDimension = 2bound_tu, polyons_tu = pcl.doConvexHull(inCloud, inDimension)
6.5 提取凹型轮廓(pcl.doConcaveHull)
| 算子名称 |
pcl.doConcaveHull |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
double |
inAlpha |
点云间距 |
|
int |
inDimension |
设置维度 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
在指定维度下,提取凹型外壳 |
|
脚本示例:
inCloud = cloudinAlpha = 0.02inDimension = 2bound_ao, polyons_ao = pcl.doConcaveHull(inCloud, inAlpha, inDimension)
7.边界
7.1 提取边界(pcl.doRangeBorderExtract)
| 算子名称 |
pcl.doRangeBorderExtract |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_RangeImage_ptr |
range_image |
图片范围 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
提取指定图像范围的边界 |
|
7.2 范围图像(pcl.doRangeImage)
| 算子名称 |
pcl.doRangeImage |
|
|
|
参数类型 |
参数名 |
参数说明 |
| 输入参数 |
PCL_RangeImage_ptr |
cloud |
输入点云 |
| 返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
指定提取边界范围内的图像 |
|
8.类属性说明
8.1坐标位置 (PCL.Point)
| 类名称 |
pcl.PCL_Point |
|
|
|
属性类型 |
参数名 |
参数说明 |
| 属性列表 |
float |
x |
x坐标 |
|
float |
y |
y坐标 |
|
float |
z |
z坐标 |
| 成员函数 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
| 功能描述 |
根据坐标范围截取正面的点云 |
|