public Estimate ( Accord points1, Accord points2 ) : ].float[ | ||
points1 | Accord | |
points2 | Accord | |
Результат | ].float[ |
public void EstimateTest() { Point[] points1 = { new Point(86, 3), new Point(262, 7), new Point(72, 12), new Point(233, 14), new Point(222, 16), new Point(242, 19), new Point(174, 21), new Point(199, 22), new Point(210, 23), new Point(245, 27), new Point(223, 28), new Point(171, 29), new Point(213, 32), new Point(206, 34), new Point(158, 36), new Point(215, 36), new Point(194, 40), new Point(155, 43), new Point(390, 145), new Point(325, 151), new Point(430, 165), new Point(569, 166), new Point(548, 171), new Point(486, 172), new Point(585, 174), new Point(513, 175), new Point(581, 178) }; //Points 2 Point[] points2 = { new Point(94, 3), new Point(129, 10), new Point(135, 6), new Point(100, 16), new Point(88, 18), new Point(109, 22), new Point(35, 23), new Point(63, 24), new Point(75, 25), new Point(112, 30), new Point(89, 31), new Point(32, 31), new Point(78, 35), new Point(70, 37), new Point(19, 38), new Point(80, 39), new Point(58, 43), new Point(15, 46), new Point(259, 151), new Point(194, 158), new Point(299, 171), new Point(433, 171), new Point(414, 176), new Point(354, 177), new Point(449, 178), new Point(380, 180), new Point(445, 183) }; double[,] expected = { { 7.07032436087535e-07, 4.33250001914367e-05, 0.000202442793261960 }, { -4.24949673892611e-05, 7.57829117692283e-07, -0.0167251164924736 }, { 6.04519481294552e-05, 0.0112588312334709, -0.00408283512108965 }, }; // Set a fixed seed to transform RANSAC into a deterministic algorithm Accord.Math.Tools.SetupGenerator(0); RansacFundamentalEstimator ransac = new RansacFundamentalEstimator(0.001, 0.99); float[,] actual = ransac.Estimate(points1, points2); for (int i = 0; i < 3; i++) for (int j = 0; j < 3; j++) Assert.AreEqual(expected[i, j], actual[i, j], 1e-3); }
public void EstimateTest() { Point[] points1 = { new Point(86, 3), new Point(262, 7), new Point(72, 12), new Point(233, 14), new Point(222, 16), new Point(242, 19), new Point(174, 21), new Point(199, 22), new Point(210, 23), new Point(245, 27), new Point(223, 28), new Point(171, 29), new Point(213, 32), new Point(206, 34), new Point(158, 36), new Point(215, 36), new Point(194, 40), new Point(155, 43), new Point(390, 145), new Point(325, 151), new Point(430, 165), new Point(569, 166), new Point(548, 171), new Point(486, 172), new Point(585, 174), new Point(513, 175), new Point(581, 178) }; //Points 2 Point[] points2 = { new Point(94, 3), new Point(129, 10), new Point(135, 6), new Point(100, 16), new Point(88, 18), new Point(109, 22), new Point(35, 23), new Point(63, 24), new Point(75, 25), new Point(112, 30), new Point(89, 31), new Point(32, 31), new Point(78, 35), new Point(70, 37), new Point(19, 38), new Point(80, 39), new Point(58, 43), new Point(15, 46), new Point(259, 151), new Point(194, 158), new Point(299, 171), new Point(433, 171), new Point(414, 176), new Point(354, 177), new Point(449, 178), new Point(380, 180), new Point(445, 183) }; float[,] expected = { { 3.254832E-07f, 1.12779E-05f, 1.551695E-05f }, { -9.57038E-06f, -3.555409E-07f, 0.009430919f }, { -0.0003096815f, -0.008560383f, 0.0500053f } }; // Set a fixed seed to transform RANSAC into a deterministic algorithm Accord.Math.Random.Generator.Seed = 0; RansacFundamentalEstimator ransac = new RansacFundamentalEstimator(0.001, 0.99); float[,] actual = ransac.Estimate(points1, points2); string str = actual.ToCSharp(); Assert.IsTrue(actual.IsEqual(expected, 1e-3f)); }