Exemplo n.º 1
0
        public GlyphImageProcessor(int size)
        {
            recognizer = new GlyphRecognizer(size);

            GlyphVisualizationData visualizationData;

            byte[,] data;
            GlyphDatabase gDB = new GlyphDatabase(5);



            if (size == 5)
            {
                #region Monitors

                //Monitor 1

                data       = new byte[5, 5];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 1;
                data[1, 3] = 0;
                data[1, 4] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 1;
                data[2, 3] = 0;
                data[2, 4] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 0;
                data[3, 3] = 1;
                data[3, 4] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;


                Glyph S1 = new Glyph("Monitor1", data);
                visualizationData = new GlyphVisualizationData(Color.Red);
                S1.UserData       = visualizationData;

                //Monitor 2

                data       = new byte[5, 5];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 0;
                data[1, 3] = 1;
                data[1, 4] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 1;
                data[2, 3] = 0;
                data[2, 4] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 0;
                data[3, 3] = 1;
                data[3, 4] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;


                Glyph S2 = new Glyph("Monitor2", data);
                visualizationData = new GlyphVisualizationData(Color.Red);
                S2.UserData       = visualizationData;

                //Monitor 3

                data       = new byte[5, 5];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 0;
                data[1, 3] = 0;
                data[1, 4] = 0;

                data[2, 0] = 0;
                data[2, 1] = 1;
                data[2, 2] = 1;
                data[2, 3] = 0;
                data[2, 4] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 0;
                data[3, 3] = 1;
                data[3, 4] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;


                Glyph S3 = new Glyph("Monitor3", data);
                visualizationData = new GlyphVisualizationData(Color.Red);
                S3.UserData       = visualizationData;

                //Monitor 4

                data       = new byte[5, 5];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 1;
                data[1, 3] = 1;
                data[1, 4] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 1;
                data[2, 3] = 0;
                data[2, 4] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 0;
                data[3, 3] = 1;
                data[3, 4] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;


                Glyph S4 = new Glyph("Monitor4", data);
                visualizationData = new GlyphVisualizationData(Color.Red);
                S4.UserData       = visualizationData;

                //Monitor 5

                data       = new byte[5, 5];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 0;
                data[1, 3] = 1;
                data[1, 4] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 1;
                data[2, 3] = 1;
                data[2, 4] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 0;
                data[3, 3] = 1;
                data[3, 4] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;


                Glyph S5 = new Glyph("Monitor5", data);
                visualizationData = new GlyphVisualizationData(Color.Red);
                S5.UserData       = visualizationData;

                //Monitor 6

                data       = new byte[5, 5];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 0;
                data[1, 3] = 1;
                data[1, 4] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 1;
                data[2, 3] = 1;
                data[2, 4] = 0;

                data[3, 0] = 0;
                data[3, 1] = 1;
                data[3, 2] = 0;
                data[3, 3] = 1;
                data[3, 4] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;


                Glyph S6 = new Glyph("Monitor6", data);
                visualizationData = new GlyphVisualizationData(Color.Red);
                S6.UserData       = visualizationData;

                //Monitor 7

                data       = new byte[5, 5];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 0;
                data[1, 3] = 1;
                data[1, 4] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 1;
                data[2, 3] = 0;
                data[2, 4] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 0;
                data[3, 3] = 1;
                data[3, 4] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;


                Glyph S7 = new Glyph("Monitor7", data);
                visualizationData = new GlyphVisualizationData(Color.Red);
                S7.UserData       = visualizationData;

                //Monitor 8

                data       = new byte[5, 5];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 1;
                data[1, 3] = 1;
                data[1, 4] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 0;
                data[2, 3] = 1;
                data[2, 4] = 0;

                data[3, 0] = 0;
                data[3, 1] = 1;
                data[3, 2] = 1;
                data[3, 3] = 1;
                data[3, 4] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;


                Glyph S8 = new Glyph("Monitor8", data);
                visualizationData = new GlyphVisualizationData(Color.Red);
                S8.UserData       = visualizationData;

                //Monitor 9

                data       = new byte[5, 5];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;

                data[1, 0] = 0;
                data[1, 1] = 0;
                data[1, 2] = 1;
                data[1, 3] = 0;
                data[1, 4] = 0;

                data[2, 0] = 0;
                data[2, 1] = 1;
                data[2, 2] = 0;
                data[2, 3] = 1;
                data[2, 4] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 1;
                data[3, 3] = 1;
                data[3, 4] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;


                Glyph S9 = new Glyph("Monitor9", data);
                visualizationData = new GlyphVisualizationData(Color.Red);
                S9.UserData       = visualizationData;

                //Monitor 10

                data       = new byte[5, 5];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 1;
                data[1, 3] = 1;
                data[1, 4] = 0;

                data[2, 0] = 0;
                data[2, 1] = 1;
                data[2, 2] = 0;
                data[2, 3] = 0;
                data[2, 4] = 0;

                data[3, 0] = 0;
                data[3, 1] = 1;
                data[3, 2] = 0;
                data[3, 3] = 1;
                data[3, 4] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;


                Glyph S10 = new Glyph("Monitor10", data);
                visualizationData = new GlyphVisualizationData(Color.Red);
                S10.UserData      = visualizationData;



                #endregion Monitors

                #region Roomba glyph
                //Roomba

                data       = new byte[5, 5];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 0;
                data[1, 3] = 1;
                data[1, 4] = 0;

                data[2, 0] = 0;
                data[2, 1] = 1;
                data[2, 2] = 1;
                data[2, 3] = 1;
                data[2, 4] = 0;

                data[3, 0] = 0;
                data[3, 1] = 1;
                data[3, 2] = 1;
                data[3, 3] = 1;
                data[3, 4] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;
                Glyph roomba = new Glyph("Roomba", data);
                visualizationData = new GlyphVisualizationData(Color.Yellow);
                roomba.UserData   = visualizationData;
                #endregion Roomba glyph
                gDB = new GlyphDatabase(5);
                gDB.Add(S1);
                gDB.Add(S2);
                gDB.Add(S3);
                gDB.Add(S4);
                gDB.Add(S5);
                gDB.Add(S6);
                gDB.Add(S7);
                gDB.Add(S8);
                gDB.Add(S9);
                gDB.Add(S10);
                gDB.Add(roomba);
            }
            else if (size == 6)
            {
                Color MarkerColor = Color.GreenYellow;
                #region Objects 6*6 glype

                data       = new byte[6, 6];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;
                data[0, 5] = 0;

                data[1, 0] = 0;
                data[1, 1] = 0;
                data[1, 2] = 1;
                data[1, 3] = 0;
                data[1, 4] = 1;
                data[1, 5] = 0;

                data[2, 0] = 0;
                data[2, 1] = 1;
                data[2, 2] = 0;
                data[2, 3] = 1;
                data[2, 4] = 0;
                data[2, 5] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 1;
                data[3, 3] = 0;
                data[3, 4] = 1;
                data[3, 5] = 0;

                data[4, 0] = 0;
                data[4, 1] = 1;
                data[4, 2] = 0;
                data[4, 3] = 1;
                data[4, 4] = 1;
                data[4, 5] = 0;

                data[5, 0] = 0;
                data[5, 1] = 0;
                data[5, 2] = 0;
                data[5, 3] = 0;
                data[5, 4] = 0;
                data[5, 5] = 0;

                Glyph o1 = new Glyph("Marker_6_1", data);
                visualizationData = new GlyphVisualizationData(MarkerColor);
                o1.UserData       = visualizationData;



                data       = new byte[6, 6];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;
                data[0, 5] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 0;
                data[1, 3] = 0;
                data[1, 4] = 1;
                data[1, 5] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 0;
                data[2, 3] = 1;
                data[2, 4] = 0;
                data[2, 5] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 1;
                data[3, 3] = 0;
                data[3, 4] = 1;
                data[3, 5] = 0;

                data[4, 0] = 0;
                data[4, 1] = 1;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 1;
                data[4, 5] = 0;

                data[5, 0] = 0;
                data[5, 1] = 0;
                data[5, 2] = 0;
                data[5, 3] = 0;
                data[5, 4] = 0;
                data[5, 5] = 0;

                Glyph o2 = new Glyph("Marker_6_2", data);
                visualizationData = new GlyphVisualizationData(MarkerColor);
                o2.UserData       = visualizationData;



                data       = new byte[6, 6];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;
                data[0, 5] = 0;

                data[1, 0] = 0;
                data[1, 1] = 0;
                data[1, 2] = 1;
                data[1, 3] = 1;
                data[1, 4] = 0;
                data[1, 5] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 1;
                data[2, 3] = 0;
                data[2, 4] = 1;
                data[2, 5] = 0;

                data[3, 0] = 0;
                data[3, 1] = 1;
                data[3, 2] = 0;
                data[3, 3] = 0;
                data[3, 4] = 0;
                data[3, 5] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 1;
                data[4, 3] = 1;
                data[4, 4] = 0;
                data[4, 5] = 0;

                data[5, 0] = 0;
                data[5, 1] = 0;
                data[5, 2] = 0;
                data[5, 3] = 0;
                data[5, 4] = 0;
                data[5, 5] = 0;

                Glyph o3 = new Glyph("Marker_6_3", data);
                visualizationData = new GlyphVisualizationData(MarkerColor);
                o3.UserData       = visualizationData;

                data       = new byte[6, 6];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;
                data[0, 5] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 0;
                data[1, 3] = 1;
                data[1, 4] = 0;
                data[1, 5] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 1;
                data[2, 3] = 1;
                data[2, 4] = 0;
                data[2, 5] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 1;
                data[3, 3] = 1;
                data[3, 4] = 0;
                data[3, 5] = 0;

                data[4, 0] = 0;
                data[4, 1] = 1;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 1;
                data[4, 5] = 0;

                data[5, 0] = 0;
                data[5, 1] = 0;
                data[5, 2] = 0;
                data[5, 3] = 0;
                data[5, 4] = 0;
                data[5, 5] = 0;

                Glyph o4 = new Glyph("Marker_6_4", data);
                visualizationData = new GlyphVisualizationData(MarkerColor);
                o4.UserData       = visualizationData;


                data       = new byte[6, 6];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;
                data[0, 5] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 0;
                data[1, 3] = 0;
                data[1, 4] = 1;
                data[1, 5] = 0;

                data[2, 0] = 0;
                data[2, 1] = 1;
                data[2, 2] = 1;
                data[2, 3] = 0;
                data[2, 4] = 1;
                data[2, 5] = 0;

                data[3, 0] = 0;
                data[3, 1] = 1;
                data[3, 2] = 0;
                data[3, 3] = 1;
                data[3, 4] = 0;
                data[3, 5] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 1;
                data[4, 5] = 0;

                data[5, 0] = 0;
                data[5, 1] = 0;
                data[5, 2] = 0;
                data[5, 3] = 0;
                data[5, 4] = 0;
                data[5, 5] = 0;

                Glyph o5 = new Glyph("Marker_6_5", data);
                visualizationData = new GlyphVisualizationData(MarkerColor);
                o5.UserData       = visualizationData;

                data       = new byte[6, 6];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;
                data[0, 5] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 0;
                data[1, 3] = 0;
                data[1, 4] = 1;
                data[1, 5] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 0;
                data[2, 3] = 1;
                data[2, 4] = 1;
                data[2, 5] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 1;
                data[3, 3] = 0;
                data[3, 4] = 1;
                data[3, 5] = 0;

                data[4, 0] = 0;
                data[4, 1] = 1;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;
                data[4, 5] = 0;

                data[5, 0] = 0;
                data[5, 1] = 0;
                data[5, 2] = 0;
                data[5, 3] = 0;
                data[5, 4] = 0;
                data[5, 5] = 0;

                Glyph o6 = new Glyph("Marker_6_6", data);
                visualizationData = new GlyphVisualizationData(MarkerColor);
                o6.UserData       = visualizationData;

                data       = new byte[6, 6];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;
                data[0, 5] = 0;

                data[1, 0] = 0;
                data[1, 1] = 0;
                data[1, 2] = 1;
                data[1, 3] = 0;
                data[1, 4] = 0;
                data[1, 5] = 0;

                data[2, 0] = 0;
                data[2, 1] = 1;
                data[2, 2] = 1;
                data[2, 3] = 1;
                data[2, 4] = 0;
                data[2, 5] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 0;
                data[3, 3] = 1;
                data[3, 4] = 1;
                data[3, 5] = 0;

                data[4, 0] = 0;
                data[4, 1] = 1;
                data[4, 2] = 0;
                data[4, 3] = 0;
                data[4, 4] = 0;
                data[4, 5] = 0;

                data[5, 0] = 0;
                data[5, 1] = 0;
                data[5, 2] = 0;
                data[5, 3] = 0;
                data[5, 4] = 0;
                data[5, 5] = 0;

                Glyph o7 = new Glyph("Marker_6_7", data);
                visualizationData = new GlyphVisualizationData(MarkerColor);
                o7.UserData       = visualizationData;


                data       = new byte[6, 6];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;
                data[0, 5] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 1;
                data[1, 3] = 0;
                data[1, 4] = 0;
                data[1, 5] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 1;
                data[2, 3] = 0;
                data[2, 4] = 0;
                data[2, 5] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 1;
                data[3, 3] = 1;
                data[3, 4] = 1;
                data[3, 5] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 1;
                data[4, 3] = 0;
                data[4, 4] = 0;
                data[4, 5] = 0;

                data[5, 0] = 0;
                data[5, 1] = 0;
                data[5, 2] = 0;
                data[5, 3] = 0;
                data[5, 4] = 0;
                data[5, 5] = 0;

                Glyph o8 = new Glyph("Marker_6_8", data);
                visualizationData = new GlyphVisualizationData(MarkerColor);
                o8.UserData       = visualizationData;

                data       = new byte[6, 6];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;
                data[0, 5] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 0;
                data[1, 3] = 0;
                data[1, 4] = 1;
                data[1, 5] = 0;

                data[2, 0] = 0;
                data[2, 1] = 0;
                data[2, 2] = 1;
                data[2, 3] = 1;
                data[2, 4] = 0;
                data[2, 5] = 0;

                data[3, 0] = 0;
                data[3, 1] = 1;
                data[3, 2] = 0;
                data[3, 3] = 1;
                data[3, 4] = 0;
                data[3, 5] = 0;

                data[4, 0] = 0;
                data[4, 1] = 0;
                data[4, 2] = 1;
                data[4, 3] = 0;
                data[4, 4] = 1;
                data[4, 5] = 0;

                data[5, 0] = 0;
                data[5, 1] = 0;
                data[5, 2] = 0;
                data[5, 3] = 0;
                data[5, 4] = 0;
                data[5, 5] = 0;

                Glyph o9 = new Glyph("Marker_6_9", data);
                visualizationData = new GlyphVisualizationData(MarkerColor);
                o9.UserData       = visualizationData;

                data       = new byte[6, 6];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;
                data[0, 5] = 0;

                data[1, 0] = 0;
                data[1, 1] = 0;
                data[1, 2] = 1;
                data[1, 3] = 0;
                data[1, 4] = 1;
                data[1, 5] = 0;

                data[2, 0] = 0;
                data[2, 1] = 1;
                data[2, 2] = 1;
                data[2, 3] = 1;
                data[2, 4] = 1;
                data[2, 5] = 0;

                data[3, 0] = 0;
                data[3, 1] = 0;
                data[3, 2] = 1;
                data[3, 3] = 1;
                data[3, 4] = 0;
                data[3, 5] = 0;

                data[4, 0] = 0;
                data[4, 1] = 1;
                data[4, 2] = 0;
                data[4, 3] = 1;
                data[4, 4] = 1;
                data[4, 5] = 0;

                data[5, 0] = 0;
                data[5, 1] = 0;
                data[5, 2] = 0;
                data[5, 3] = 0;
                data[5, 4] = 0;
                data[5, 5] = 0;

                Glyph o10 = new Glyph("Marker_6_10", data);
                visualizationData = new GlyphVisualizationData(MarkerColor);
                o10.UserData      = visualizationData;


                data       = new byte[6, 6];
                data[0, 0] = 0;
                data[0, 1] = 0;
                data[0, 2] = 0;
                data[0, 3] = 0;
                data[0, 4] = 0;
                data[0, 5] = 0;

                data[1, 0] = 0;
                data[1, 1] = 1;
                data[1, 2] = 0;
                data[1, 3] = 0;
                data[1, 4] = 1;
                data[1, 5] = 0;

                data[2, 0] = 0;
                data[2, 1] = 1;
                data[2, 2] = 0;
                data[2, 3] = 0;
                data[2, 4] = 1;
                data[2, 5] = 0;

                data[3, 0] = 0;
                data[3, 1] = 1;
                data[3, 2] = 0;
                data[3, 3] = 0;
                data[3, 4] = 1;
                data[3, 5] = 0;

                data[4, 0] = 0;
                data[4, 1] = 1;
                data[4, 2] = 1;
                data[4, 3] = 1;
                data[4, 4] = 1;
                data[4, 5] = 0;

                data[5, 0] = 0;
                data[5, 1] = 0;
                data[5, 2] = 0;
                data[5, 3] = 0;
                data[5, 4] = 0;
                data[5, 5] = 0;

                Glyph o11 = new Glyph("Marker_6_11", data);
                visualizationData = new GlyphVisualizationData(MarkerColor);
                o11.UserData      = visualizationData;
                #endregion objects 6*6 glyph


                gDB = new GlyphDatabase(6);
                gDB.Add(o1);
                gDB.Add(o2);
                gDB.Add(o3);
                gDB.Add(o4);
                gDB.Add(o5);
                gDB.Add(o6);
                gDB.Add(o7);
                gDB.Add(o8);
                gDB.Add(o9);
                gDB.Add(o10);
                gDB.Add(o11);
            }



            GlyphDatabase = gDB;
        }
Exemplo n.º 2
0
        public void VisualizeGlyph(Bitmap bitmap, Dictionary <string, string> names)
        {
            lock (this)
            {
                if (foundGlyphs.Count > 0)
                {
                    if ((visualizationType == VisualizationType.BorderOnly) ||
                        (visualizationType == VisualizationType.Name))
                    {
                        Graphics g = Graphics.FromImage(bitmap);

                        // highlight each found glyph
                        foreach (ExtractedGlyphData glyphData in foundGlyphs)
                        {
                            if ((glyphData.RecognizedGlyph == null) || (glyphData.RecognizedGlyph.UserData == null))
                            {
                                // highlight with default pen
                                g.DrawPolygon(defaultPen, ToPointsArray(glyphData.Quadrilateral));
                            }
                            else
                            {
                                GlyphVisualizationData visualization =
                                    (GlyphVisualizationData)glyphData.RecognizedGlyph.UserData;

                                Pen pen = new Pen(visualization.Color, 3);

                                // highlight border
                                g.DrawPolygon(pen, ToPointsArray(glyphData.Quadrilateral));

                                // show glyph's name
                                if (visualizationType == VisualizationType.Name)
                                {
                                    // get glyph's center point
                                    AForge.IntPoint minXY, maxXY;
                                    PointsCloud.GetBoundingRectangle(glyphData.Quadrilateral, out minXY, out maxXY);
                                    AForge.IntPoint center = (minXY + maxXY) / 2;


                                    string GyphName = "";
                                    if (names.ContainsKey(glyphData.RecognizedGlyph.Name))
                                    {
                                        GyphName = names[glyphData.RecognizedGlyph.Name];
                                    }

                                    // glyph's name size
                                    SizeF nameSize = g.MeasureString(GyphName, defaultFont);

                                    // paint the name
                                    Brush brush = new SolidBrush(visualization.Color);

                                    g.DrawString(GyphName, defaultFont, brush,
                                                 new Point(center.X - (int)nameSize.Width / 2, center.Y - (int)nameSize.Height / 2));

                                    brush.Dispose( );
                                }

                                pen.Dispose( );
                            }
                        }
                    }
                }
            }
        }