public static PointCloud AlignPointClouds_Simple(PointCloud pointCloudSource, PointCloud pointCloudTarget) { PCA pca = new PCA(); pca.MaxmimumIterations = 1; pca.AxesRotateEffect = false; PointCloud pcResult = pca.AlignPointClouds_SVD(pointCloudSource, pointCloudTarget); pcResult = PointCloud.CalculateMergedPoints_SimpleAdd(pcResult, pointCloudTarget, true); return(pcResult); }
private void Clouds_PCA() { if (!GetFirstTwoCloudsFromOpenGLControl()) { return; } PCA pca = new PCA(); pca.MaxmimumIterations = 1; PointCloud pointCloudResult = pca.AlignPointClouds_SVD(this.pSource, this.pTarget); pointCloudResult.AddPointCloud(this.pTarget); SaveResultCloudAndShow(pointCloudResult); this.registrationMatrix = pca.Matrix; registrationMatrix.Save(GLSettings.Path + GLSettings.PathPointClouds, "registrationMatrix.txt"); }