Accord.Tests.Imaging.SpeededUpRobustFeaturesDetectorTest.ProcessImageTest3 C# (CSharp) Method

ProcessImageTest3() private method

private ProcessImageTest3 ( ) : void
return void
        public void ProcessImageTest3()
        {
            // Load an Image
            Bitmap img = Accord.Imaging.Image.Clone(Properties.Resources.sample_trans);

            // Extract the interest points
            var surf = new SpeededUpRobustFeaturesDetector(0.0002f, 5, 2);

            surf.ComputeDescriptors = SpeededUpRobustFeatureDescriptorType.Extended;
            surf.ComputeOrientation = false;

            List<SpeededUpRobustFeaturePoint> points = surf.ProcessImage(img);

            Assert.AreEqual(8, points.Count);

            SpeededUpRobustFeaturePoint p;

            p = points[0];
            Assert.AreEqual(0, p.Laplacian);
            Assert.AreEqual(25.3803387, p.X, 1e-2);
            Assert.AreEqual(14.7987738, p.Y, 1e-2);
            Assert.AreEqual(1.98713827, p.Scale, 1e-2);
            Assert.AreEqual(0.0, p.Response, 1e-2);
            Assert.AreEqual(0.0, p.Orientation, 1e-2);
            Assert.AreEqual(128, p.Descriptor.Length);
            Assert.AreEqual(0.026510688411631893, p.Descriptor[23], 1e-10);
            Assert.AreEqual(0.28209917003131696, p.Descriptor[42], 1e-10);

            p = points[1];
            Assert.AreEqual(1, p.Laplacian, 1e-2);
            Assert.AreEqual(20.4856224, p.X, 1e-2);
            Assert.AreEqual(20.4817181, p.Y, 1e-2);
            Assert.AreEqual(1.90549147, p.Scale, 1e-2);
            Assert.AreEqual(0.0, p.Response, 1e-2);
            Assert.AreEqual(0, p.Orientation, 1e-2);
            Assert.AreEqual(128, p.Descriptor.Length);
            Assert.AreEqual(0.0017327366915338997, p.Descriptor[23], 1e-10);
            Assert.AreEqual(0.011412382779922381, p.Descriptor[54], 1e-10);

            p = points[2];
            Assert.AreEqual(0, p.Laplacian, 1e-2);
            Assert.AreEqual(14.7991896, p.X, 1e-2);
            Assert.AreEqual(25.3776169, p.Y, 1e-2);
            Assert.AreEqual(1.9869982, p.Scale, 1e-2);
            Assert.AreEqual(0.0, p.Response, 1e-2);
            Assert.AreEqual(0.0, p.Orientation, 1e-2);
            Assert.AreEqual(128, p.Descriptor.Length);
            Assert.AreEqual(0.013389417853018544, p.Descriptor[23], 1e-10);
            Assert.AreEqual(0.0000054046300690336785, p.Descriptor[12], 1e-10);

            p = points[6];
            Assert.AreEqual(1, p.Laplacian, 1e-2);
            Assert.AreEqual(22.4346638, p.X, 1e-2);
            Assert.AreEqual(41.4026527, p.Y, 1e-2);
            Assert.AreEqual(2.83586049, p.Scale, 1e-2);
            Assert.AreEqual(0.0, p.Response, 1e-2);
            Assert.AreEqual(0.0, p.Orientation, 1e-2);
            Assert.AreEqual(128, p.Descriptor.Length);
            Assert.AreEqual(0.059752032324088523, p.Descriptor[23], 1e-10);
            Assert.AreEqual(-0.0000056593837766382935, p.Descriptor[12], 1e-10);
        }