public void Translation_Horn()
 {
     Reset();
     IterativeClosestPointTransform.ICPVersion = ICP_VersionUsed.Horn;
     meanDistance = ICPTestData.Test1_Translation(ref verticesTarget, ref verticesSource, ref verticesResult);
     Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-10));
 }
        public void Scale_AllAxes_Du()
        {
            Reset();
            IterativeClosestPointTransform.ICPVersion      = ICP_VersionUsed.Scaling_Du;
            IterativeClosestPointTransform.FixedTestPoints = true;
            meanDistance = ICPTestData.Test3_Scale(ref verticesTarget, ref verticesSource, ref verticesResult);

            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-10));
        }
        public void RotationXYZ_Zinsser()
        {
            Reset();
            IterativeClosestPointTransform.ICPVersion      = ICP_VersionUsed.Scaling_Zinsser;
            IterativeClosestPointTransform.FixedTestPoints = true;
            meanDistance = ICPTestData.Test2_RotationXYZ(ref verticesTarget, ref verticesSource, ref verticesResult);

            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-10));
        }
        public void Scale_Horn()
        {
            Reset();
            IterativeClosestPointTransform.ICPVersion      = ICP_VersionUsed.Horn;
            IterativeClosestPointTransform.FixedTestPoints = true;
            meanDistance = ICPTestData.Test3_Scale(ref verticesTarget, ref verticesSource, ref verticesResult);

            //this.ShowResultsInWindowIncludingLines(false);
            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-10));
        }
 public void Translation_Zinsser()
 {
     Reset();
     IterativeClosestPointTransform.ICPVersion = ICP_VersionUsed.Scaling_Zinsser;
     meanDistance = ICPTestData.Test1_Translation(ref verticesTarget, ref verticesSource, ref verticesResult);
     if (!ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-10))
     {
         System.Diagnostics.Debug.WriteLine("Translation Zinsser failed");
         Assert.Fail("Translation Zinsser failed");
     }
 }
        public void Cube_ScaleInhomogenous_Du()
        {
            Reset();
            IterativeClosestPointTransform.ICPVersion      = ICP_VersionUsed.Scaling_Du;
            IterativeClosestPointTransform.FixedTestPoints = true;
            meanDistance = ICPTestData.Test5_CubeScale_Inhomogenous(ref verticesTarget, ref verticesSource, ref verticesResult);


            this.ShowResultsInWindow_CubeLines(false);
            //
            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-10));
        }
 public void Translation_Umeyama()
 {
     Reset();
     IterativeClosestPointTransform.ICPVersion = ICP_VersionUsed.Scaling_Umeyama;
     meanDistance = ICPTestData.Test1_Translation(ref verticesTarget, ref verticesSource, ref verticesResult);
     //have to check why Umeyama is not exact to e-10 - perhaps because of diagonalization lib (for the scale factor)
     if (!ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-5))
     {
         System.Diagnostics.Debug.WriteLine("Translation Umeyama failed");
         Assert.Fail("Translation Umeyama failed");
     }
 }
Exemplo n.º 8
0
        public void Du()
        {
            Reset();
            SettingsRealData();
            IterativeClosestPointTransform.MaximumNumberOfIterations = 100;
            IterativeClosestPointTransform.ICPVersion = ICP_VersionUsed.Scaling_Du;


            meanDistance = ICPTestData.Test9_Face_Stitch(ref verticesTarget, ref verticesSource, ref verticesResult);

            ShowResultsInWindow(true);
            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-3));
        }
        public void Cube_RotateTranslate_ScaleUniform_Du()
        {
            Reset();
            IterativeClosestPointTransform.ICPVersion      = ICP_VersionUsed.Scaling_Du;
            IterativeClosestPointTransform.FixedTestPoints = true;
            KDTreeVertex.KDTreeMode = KDTreeMode.Rednaxala;
            meanDistance            = ICPTestData.Test5_CubeRotateTranslate_ScaleUniform(ref verticesTarget, ref verticesSource, ref verticesResult);


            this.ShowResultsInWindow_CubeLines(false);
            //
            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-10));
        }
Exemplo n.º 10
0
        public void Outliers_CubeTranslate_NotGood()
        {
            Reset();


            IterativeClosestPointTransform.ICPVersion = ICP_VersionUsed.Horn;
            IterativeClosestPointTransform.MaximumNumberOfIterations = 10;

            meanDistance = ICPTestData.Test8_CubeOutliers_Translate(ref verticesTarget, ref verticesSource, ref verticesResult);

            this.ShowResultsInWindow_CubeLines(false);
            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-3));
        }
        public void Cube_Rotate()
        {
            Reset();
            IterativeClosestPointTransform.ICPVersion          = ICP_VersionUsed.Horn;
            IterativeClosestPointTransform.FixedTestPoints     = true;
            IterativeClosestPointTransform.ResetVertexToOrigin = false;

            meanDistance = ICPTestData.Test5_CubeRotate(ref verticesTarget, ref verticesSource, ref verticesResult);

            this.ShowResultsInWindow_CubeLines(false);

            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-10));
        }
Exemplo n.º 12
0
        public void Face_NormalsCheck()
        {
            Reset();

            IterativeClosestPointTransform.ICPVersion = ICP_VersionUsed.Horn;
            KDTreeVertex.KDTreeMode = KDTreeMode.Rednaxala;
            IterativeClosestPointTransform.MaximumNumberOfIterations = 10;
            IterativeClosestPointTransform.NormalsCheck = true;

            meanDistance = ICPTestData.Test9_Face_Stitch(ref verticesTarget, ref verticesSource, ref verticesResult);

            ShowResultsInWindow(false);
            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-3));
        }
        public void Translation_Horn_Old()
        {
            Reset();
            IterativeClosestPointTransform.ICPVersion = ICP_VersionUsed.Horn;

            meanDistance = ICPTestData.Test1_Translation(ref verticesTarget, ref verticesSource, ref verticesResult);
            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-10));


            ICPTestForm fOTK = new ICPTestForm();

            fOTK.ShowICPResults(verticesTarget, verticesSource, verticesResult, true);
            fOTK.ShowDialog();
        }
        public void Umeyama()
        {
            Reset();

            IterativeClosestPointTransform.ICPVersion = ICP_VersionUsed.Scaling_Umeyama;
            KDTreeVertex.KDTreeMode = KDTreeMode.Rednaxala;
            IterativeClosestPointTransform.MaximumNumberOfIterations = 50;


            meanDistance = ICPTestData.Test7_Face_KnownTransformation(ref verticesTarget, ref verticesSource, ref verticesResult);

            //ShowResultsInWindow(false);
            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-3));
        }
Exemplo n.º 15
0
        public void Horn()
        {
            Reset();
            SettingsRealData();
            //as it does not converge anyway, keep the iteration number low
            IterativeClosestPointTransform.MaximumNumberOfIterations = 10;

            IterativeClosestPointTransform.ICPVersion = ICP_VersionUsed.Horn;


            meanDistance = ICPTestData.Test9_Face_Stitch(ref verticesTarget, ref verticesSource, ref verticesResult);

            ShowResultsInWindow(true);
            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-3));
        }
Exemplo n.º 16
0
        public void Outliers_CubeRotate()
        {
            Reset();

            IterativeClosestPointTransform.ICPVersion = ICP_VersionUsed.Horn;
            IterativeClosestPointTransform.MaximumNumberOfIterations = 10;
            IterativeClosestPointTransform.SimulatedAnnealing        = true;



            meanDistance = ICPTestData.Test8_CubeOutliers_Rotate(ref verticesTarget, ref verticesSource, ref verticesResult);

            ShowResultsInWindow(true);
            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 2e-1));
        }
Exemplo n.º 17
0
        public void Umeyama_SA()
        {
            Reset();
            SettingsRealData();

            IterativeClosestPointTransform.ICPVersion = ICP_VersionUsed.Scaling_Umeyama;

            IterativeClosestPointTransform.SimulatedAnnealing = true;


            meanDistance = ICPTestData.Test9_Face_Stitch(ref verticesTarget, ref verticesSource, ref verticesResult);

            ShowResultsInWindow(true);
            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-3));
        }
Exemplo n.º 18
0
        public void Outliers_CubeTranslate_FixedPoints()
        {
            Reset();


            IterativeClosestPointTransform.ICPVersion      = ICP_VersionUsed.Horn;
            IterativeClosestPointTransform.FixedTestPoints = true;
            //KDTreeVertex.KDTreeMode = KDTreeMode.Rednaxala;
            IterativeClosestPointTransform.MaximumNumberOfIterations = 10;
            //  IterativeClosestPointTransform.SimulatedAnnealing = true;

            meanDistance = ICPTestData.Test8_CubeOutliers_Translate(ref verticesTarget, ref verticesSource, ref verticesResult);
            // this.ShowResultsInWindowIncludingLines(false);


            Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-3));
        }
Exemplo n.º 19
0
 protected void CheckResult_VectorsUltra()
 {
     Assert.IsTrue(ICPTestData.CheckResult(verticesTarget, verticesResult, 1e-10));
 }