コード例 #1
0
        /// <summary>
        /// Высчитать эйлеровоую характеристику для 2D imageSource.
        /// </summary>
        /// <param name="imageSource">Ссылка на изображение.</param>
        /// <returns>Эйлеровая характеристика.</returns>
        public static EulerMonomap2D Compute2D(IMonomap imageSource)
        {
            Dictionary <string, int> eulerValue = EulerSquares2D.ToDictionary(item => item.SquareIdent, item => 0);
            var fragment2DSize = 2;

            IMonomap stretchPad = new StretchPad(imageSource);

            for (int y = 0; y < stretchPad.Height - fragment2DSize + 1; y++)
            {
                for (int x = 0; x < stretchPad.Width - fragment2DSize + 1; x++)
                {
                    for (int i = 0; i < EulerSquares2D.Length; i++)
                    {
                        var eulerSquare = EulerSquares2D[i];
                        if (eulerSquare.IsSquareDetected(x, y, stretchPad))
                        {
                            eulerValue[eulerSquare.SquareIdent]++;
                            break;
                        }
                    }
                }
            }

            return(new EulerMonomap2D(eulerValue));
        }
コード例 #2
0
        public void StretchPadSizeTest()
        {
            BitmapPad pad = new BitmapPad();

            pad.SetPoint(0, 0);

            StretchPad stretchPad = new StretchPad(pad);

            Assert.AreEqual(stretchPad.Height, 3);
            Assert.AreEqual(stretchPad.Width, 3);
        }
コード例 #3
0
        public void StretchPadContantTest()
        {
            BitmapPad pad = new BitmapPad();

            pad.SetPoint(0, 0);

            StretchPad stretchPad = new StretchPad(pad);

            Assert.IsFalse(stretchPad[0, 0]);
            Assert.IsFalse(stretchPad[1, 0]);
            Assert.IsFalse(stretchPad[2, 0]);

            Assert.IsFalse(stretchPad[0, 1]);
            Assert.IsTrue(stretchPad[1, 1]);
            Assert.IsFalse(stretchPad[2, 1]);

            Assert.IsFalse(stretchPad[0, 2]);
            Assert.IsFalse(stretchPad[1, 2]);
            Assert.IsFalse(stretchPad[2, 2]);
        }