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