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 = cloud
inCoefficients = 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 = cloud
inIndices = 1
inNegative = false
cloud = pcl.doExtractIndices(inCloud, inIndices, inNegative)
2.3 复制点云图像(pcl.copyPointCloud)
算子名称 |
pcl.docopyPointCloud |
|
|
|
参数类型 |
参数名 |
参数说明 |
输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
PCL_PointIndices_ptr |
inDices |
点云集群 |
返回值 |
PCL_PointCloud_ptr |
|
提取后的点云 |
功能描述 |
用于复制点云图像 |
|
脚本示例:
inCloud = cloud
inDices = 50
cloud = 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 = cloud
field = "x"
li_mmin = 1.5
li_min = 2.5
negative = false
cloud = 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 = cloud
nr_k = 50
std_mul = 1.0
cloud = pcl.doOutlierRemoval(inCloud, nr_k, std_mul)
2.7 均匀采样(pcl.doUniformSampling)
算子名称 |
pcl.doUniformSampling |
|
|
|
参数类型 |
参数名 |
参数说明 |
输入参数 |
PCL_PointCloud_ptr |
model |
输入点云 |
|
double |
modelss |
半径 |
返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
功能描述 |
输出点云索引 |
|
脚本示例:
model = cloud
model_ss_ = 1.0
cloud = pcl.doUniformSampling(model, model_ss_)
2.8 体素网格过滤(pcl.doVoxelGridFilter)
算子名称 |
pcl.doVoxelGridFilter |
|
|
|
参数类型 |
参数名 |
参数说明 |
输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
float |
leafSize |
滤波器处理时采用的体素大小 |
返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
功能描述 |
是体素化网格方法实现下采样,可在保持点云形状特征的情况下减少点云的数量,在提高配准、曲面重建、形状识别等算法的速度。 |
|
脚本示例:
inCloud = cloud
leafSize = 0.01
cloud = 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 = cloud
sigma_s = 5.0
sigma_r = 0.003
cloud = 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 = cloud
rotation = 1.0
translation = 1.0
box_size = 1.0
negative = false
cloud = 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 = cloud
plane = 0, 0, 0, 0.05
negative = false
cloud = 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 = cloud
bbox = bbox_draw --该参数来于绘制识别框结果
dw = 0.9
dh = 0.0
cloud = 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 = cloud
shadowThreshold = 0.1
normalsThreshold = 0.3
cloud = 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 = 2
CropOutside = false
cloud = 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 = cloud
tolerance = 0.05
min_size = 100
max_size = 25000
cloud = 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 = cloud
inDistanceThreshold = 0.1
inDistanceWeight = 0.01
inAxis = asix_x
inEpsAngle = 15.0
inNegative = false
cloud, 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 = cloud
cloud_normals = normals
Neighbours = 500
Smoothness = 3.0 / 180.0 * M_PI
Curvature = 1.0
cloud = 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 = cloud
distance = 0.01
degree = 25.0
cloud = 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 = cloud
k = 0
radius = 0.05
angle = 90
bound = 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 --点云平面外边界,取自computeBoundary
inSearchRadius = 0.05
inUpsamplingRadius = 0.15
inUpsamplingStepSize = 0.005
bound_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 = cloud
inSearchRadius = 0.05
inRadiusPoints = 50
cloud = 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 = cloud
inSearchRadius = 0.05
inVoxelSize = 0.01
inIterations = 1
incloud = pcl.doVoxelGridDilation(inCloud, inSearchRadius, inVoxeSize, inIterations)
6.4 提取凸包(pcl.doConvexHull)
算子名称 |
pcl.doConvexHull |
|
|
|
参数类型 |
参数名 |
参数说明 |
输入参数 |
PCL_PointCloud_ptr |
inCloud |
输入点云 |
|
int |
inDimension |
维度 |
返回值 |
PCL_PointCloud_ptr |
|
坐标范围内点云 |
功能描述 |
提取指定维度下点云的凸包 |
|
脚本示例:
inCloud = cloud
inDimension = 2
bound_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 = cloud
inAlpha = 0.02
inDimension = 2
bound_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 |
|
坐标范围内点云 |
功能描述 |
根据坐标范围截取正面的点云 |
|