6. PCL plugin
PCL is a standard plugin of cloudComPy. The plugin implements some methods of the Point Cloud Library (PCL): https://pointclouds.org.
The availability of the plugin can be tested with the cloudComPy.isPluginPCL()
function:
isPCL_available = cc.isPluginPCL()
PCL is a submodule of cloudCompy:
import cloudComPy as cc
# ...
if cc.isPluginPCL():
import cloudComPy.PCL
fgr = cc.PCL.FastGlobalRegistrationFilter()
fgr.setParameters(...)
fgr.compute()
- class cloudComPy.PCL.FastGlobalRegistrationFilter
Filter based on “Q.-Y. Zhou, J. Park, and V. Koltun, Fast Global Registration, ECCV, 2016.” See https://github.com/isl-org/FastGlobalRegistration
- __init__(self: _PCL.FastGlobalRegistrationFilter) None
default constructor.
- compute(self: _PCL.FastGlobalRegistrationFilter) int
Compute the PCL fast registration, using the PCL library. Call
FastGlobalRegistrationFilter.setParameters()
first! The cloud is moved (no copy of the original).- Returns:
success
- Return type:
bool
- getAutoRadius(self: _PCL.FastGlobalRegistrationFilter) float
Get the radius value proposed by default for PCL registration.
FastGlobalRegistrationFilter.setParameters()
with radius 0 should be called first to compute the default radius value.- Returns:
default radius value
- Return type:
float
- getTransformation(self: _PCL.FastGlobalRegistrationFilter) _cloudComPy.ccGLMatrix
get the transformation matrix after the PCL fast registration.
- Returns:
the transformation matrix
- Return type:
- setParameters(self: _PCL.FastGlobalRegistrationFilter, refCloud: _cloudComPy.ccPointCloud, alignClouds: list[_cloudComPy.ccPointCloud], radius: float = 0.0) None
Defines the reference PointCloud, the list of PointCloud to align and the radius to use for registration.
- Parameters:
refCloud (ccPointCloud) – the reference cloud
alignClouds (list) – the list of ccPointCloud to align.
radius (float,optional) – radius to use for computation, default 0 (automatic estimation of radius)
- class cloudComPy.PCL.NormalEstimation
A tool to compute normals and optionally curvature of a cloud, using the PCL library. See
NormalEstimation.setParameters()
andNormalEstimation.compute()
.- __init__(self: _PCL.NormalEstimation) None
default constructor
- compute(self: _PCL.NormalEstimation) int
compute normals and optionally curvature of a cloud, using the PCL library.
- Returns:
success
- Return type:
bool
- setParameters(self: _PCL.NormalEstimation, cloud: _cloudComPy.ccPointCloud, useKnn: bool = False, ovewriteCurvature: bool = True, knn: int = 10, radius: float = 0.0) None
Defines the parameters to use for normals and curvature calculation, using the PCL library.
- Parameters:
cloud (ccPointCloud) – the point cloud
useKnn (bool,optional) – default False, whether to use a constant number of neighbors instead of a radius.
ovewriteCurvature (bool,optional) – default True, compute curvature, overwrite the existing curvature if present.
knn (int,optional) – default 10, number of neighbors (if useKnn is true)
radius (double,optional) – default 0. meaning an automatic calculation of radius.
- class cloudComPy.PCL.MLSSmoothingUpsampling
Smoothing and normal estimation based on polynomial reconstruction, using the PCL library. See
MLSSmoothingUpsampling.setParameters()
MLSSmoothingUpsampling.compute()
- __init__(self: _PCL.MLSSmoothingUpsampling) None
default constructor
- compute(self: _PCL.MLSSmoothingUpsampling) int
Compute the smoothing and normals of the cloud, using the PCL library. Call first
MLSSmoothingUpsampling.setParameters()
Get the result cloud withMLSSmoothingUpsampling.getOutputCloud()
- Returns:
success
- Return type:
bool
- getOutputCloud(self: _PCL.MLSSmoothingUpsampling) _cloudComPy.ccPointCloud
Get the resulting cloud after
MLSSmoothingUpsampling.compute()
.- Returns:
computed cloud
- Return type:
- setParameters(self: _PCL.MLSSmoothingUpsampling, cloud: _cloudComPy.ccPointCloud, computeNormals: bool = True, searchRadius: float = 0.01, polyfit: bool = True, order: int = 2, sqrGauss: float = 0.0001, upsampleMethod: int = 0, upsampingRadius: float = 0.01, upsamplingStep: float = 0.01, stepPointDensity: int = 4, dilationVoxelSize: float = 0.01, dilationIterations: int = 0) None
Defines the parameters to use for smoothing and normals calculation, using the PCL library.
- Parameters:
cloud (ccPointCloud) – the point cloud
computeNormals (bool,optional) – default True
searchRadius (float,optional) – default 0.01, radius to use for the computation.
polyfit (bool,optional) – default True, whether to fit a polynom to smooth the cloud.
order (int,optional) – default 2, polynom order.
sqrGauss (float,optional) – default 0.0001, squared Gauss parameter.
upsampleMethod (int,optional) – default 0, value from 0=NONE, 1=SAMPLE_LOCAL_PLANE, 2=RANDOM_UNIFORM_DENSITY, 3=VOXEL_GRID_DILATION
upsampingRadius (float,optional) – default 0.01, radius to use for upsampling (SAMPLE_LOCAL_PLANE method).
upsamplingStep (float,optional) – default 0.01, radius to use for upsampling step size (SAMPLE_LOCAL_PLANE method).
stepPointDensity (int,optional) – default 4, step point density (RANDOM_UNIFORM_DENSITY).
dilationVoxelSize (float,optional) – default 0.01, dilation voxel size (VOXEL_GRID_DILATION).
dilationIterations (int,optional) – default 0 (VOXEL_GRID_DILATION).
- cloudComPy.PCL.initTrace_PCL() None
Debug trace must be initialized for each Python module.
Done in module init, following the value of environment variable _CCTRACE_ (“ON” if debug traces wanted)