示例#1
0
        private void Clouds_ICP()
        {
            if (!GetFirstTwoCloudsFromOpenGLControl())
            {
                return;
            }



            //------------------
            //ICP
            ICPLib.IterativeClosestPointTransform icp = new ICPLib.IterativeClosestPointTransform();
            icp.Reset_RealData();

            icp.ICPSettings.ICPVersion = ICP_VersionUsed.Zinsser;
            icp.ICPSettings.MaximumNumberOfIterations = 50;


            PointCloud pointCloudResult = icp.PerformICP(this.pSource, this.pTarget);

            pointCloudResult.AddPointCloud(this.pTarget);
            SaveResultCloudAndShow(pointCloudResult);
            this.registrationMatrix = icp.Matrix;
            registrationMatrix.Save(GLSettings.Path + GLSettings.PathPointClouds, "registrationMatrix.txt");
        }
示例#2
0
        private void Clouds_AlignPCAAxes()
        {
            if (!GetFirstTwoCloudsFromOpenGLControl())
            {
                return;
            }



            PointCloud pointCloudTarget = this.pSource;

            pointCloudTarget = PCA.RotateToOriginAxes(pointCloudTarget);


            PointCloud pointCloudSource = this.pTarget;

            PointCloud pointCloudResult = PCA.RotateToOriginAxes(pointCloudSource);

            pResult = pointCloudResult;
            //pResult.SetColor(new OpenTK.Vector3(1, 0, 0));

            pointCloudResult.AddPointCloud(this.pTarget);
            SaveResultCloudAndShow(pointCloudResult);
            //DisplayResultPointCloud();
            //DisplayObjects();
        }
示例#3
0
        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");
        }