跳到主要内容

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