Skip to main content

SampleConsensusInitialAlignment

SampleConsensusInitialAlignment is an implementation of the initial alignment algorithm described in section IV of "Fast Point Feature Histograms (FPFH) for 3D Registration," Rusu et al.

More: https://pointclouds.org/documentation/classpcl_1_1_sample_consensus_initial_alignment.html

Example

TypeScript
await PCL.init();const reg = new PCL.SampleConsensusInitialAlignment();reg.setMinSampleDistance(0.05);reg.setMaxCorrespondenceDistance(0.1);reg.setMaximumIterations(1000);reg.setInputSource(cloudSource);reg.setInputTarget(cloudTarget);reg.setSourceFeatures(featuresSource);reg.setTargetFeatures(featuresTarget);reg.align(final);

Type Definitions

SampleConsensusInitialAlignment

TypeScript
class SampleConsensusInitialAlignment<T extends XYZPointTypes = PointXYZ & Partial<UnionToIntersection<XYZPointTypes>>, FeatureT extends FPFHSignature33 = FPFHSignature33> extends Registration<T> {    constructor();    setSourceFeatures(cloud: PointCloud<FeatureT>): void;    getSourceFeatures(): PointCloud<FeatureT>;    setTargetFeatures(cloud: PointCloud<FeatureT>): void;    getTargetFeatures(): PointCloud<FeatureT>;    setMinSampleDistance(minSampleDistance: number): void;    getMinSampleDistance(): number;    setNumberOfSamples(samples: number): void;    getNumberOfSamples(): number;    setCorrespondenceRandomness(k: number): void;    getCorrespondenceRandomness(): number;}

Registration

TypeScript
class Registration<T extends XYZPointTypes> extends PCLBase<T> {    constructor(native: NativeAPI);    /**     * Only supports `PointXYZ` type,     * if it is not `PointXYZ` type, it will use `toXYZPointCloud` method to convert to `PointXYZ`     */    setInputSource(cloud: PointCloud<T>): void;    getInputSource(): PointCloud<PointXYZ>;    /**     * Only supports `PointXYZ` type,     * if it is not `PointXYZ` type, it will use `toXYZPointCloud` method to convert to `PointXYZ`     */    setInputTarget(cloud: PointCloud<T>): void;    getInputTarget(): PointCloud<PointXYZ>;    getFitnessScore(maxRange?: number): number;    hasConverged(): boolean;    setMaximumIterations(maxIterations: number): void;    getMaximumIterations(): number;    setRANSACIterations(ransacIterations: number): void;    getRANSACIterations(): number;    setRANSACOutlierRejectionThreshold(inlierThreshold: number): void;    getRANSACOutlierRejectionThreshold(): number;    setMaxCorrespondenceDistance(distanceThreshold: number): void;    getMaxCorrespondenceDistance(): number;    setTransformationEpsilon(epsilon: number): void;    getTransformationEpsilon(): number;    setTransformationRotationEpsilon(epsilon: number): void;    getTransformationRotationEpsilon(): number;    setEuclideanFitnessEpsilon(epsilon: number): void;    getEuclideanFitnessEpsilon(): number;    initCompute(): boolean;    initComputeReciprocal(): boolean;    align(output: PointCloud<T>): void;}

PCLBase

See PCLBase