private void KonwertujKolor(TypObiektu typ, out Checkers.Logic.Color kolor, out Checkers.Logic.Type kolor2)
        {
            kolor  = Checkers.Logic.Color.White;
            kolor2 = Checkers.Logic.Type.Man;

            switch (typ)
            {
            case RozpoznawaniePlanszy.TypObiektu.Pionki:
                kolor  = Checkers.Logic.Color.Black;
                kolor2 = Checkers.Logic.Type.Man;
                break;

            case RozpoznawaniePlanszy.TypObiektu.Damki:
                kolor  = Checkers.Logic.Color.Black;
                kolor2 = Checkers.Logic.Type.King;
                break;

            case RozpoznawaniePlanszy.TypObiektu.PionkiWrog:
                kolor  = Checkers.Logic.Color.White;
                kolor2 = Checkers.Logic.Type.Man;
                break;

            case RozpoznawaniePlanszy.TypObiektu.DamkiWrog:
                kolor  = Checkers.Logic.Color.White;
                kolor2 = Checkers.Logic.Type.King;
                break;
            }
        }
Beispiel #2
0
        public static ObiektyBudowa Twórz(TypObiektu w, int x, int y)
        {
            ObiektyBudowa element = null;

            switch (w)
            {
            case TypObiektu.tułów:
                element = new Tułów(x, y);
                break;

            case TypObiektu.glowa:
                element = new Głowa(x, y);
                break;

            case TypObiektu.jedzenie:
                element = new jedzenie(x, y);
                break;

            case TypObiektu.przeszkoda:
                element = new Przeszkoda(x, y);
                break;
            }

            return(element);
        }
        /// <summary>
        /// Wyświetla okno umożliwiające wybranie zakresu kolorów, używanego do rozpoznania określonych elementów na obrazie.
        /// </summary>
        public void Kalibruj(TypObiektu element)
        {
            wndKalibracja okno;

            KolorHSV min = new KolorHSV(0, 0, 0);
            KolorHSV max = new KolorHSV(255, 255, 255);
            string   kom = "Ustaw zakres tak, aby na obrazie widoczne były tylko ";

            switch (element)
            {
            case TypObiektu.Pola:
                min  = pola_min;
                max  = pola_max;
                kom += "białe pola.";
                break;

            case TypObiektu.Pionki:
                min  = pionki_min;
                max  = pionki_max;
                kom += "Twoje pionki.";
                break;

            case TypObiektu.Damki:
                min  = damki_min;
                max  = damki_max;
                kom += "Twoje damki.";
                break;

            case TypObiektu.PionkiWrog:
                min  = pionki_wrog_min;
                max  = pionki_wrog_max;
                kom += "pionki przeciwnika.";
                break;

            case TypObiektu.DamkiWrog:
                min  = damki_wrog_min;
                max  = damki_wrog_max;
                kom += "damki przeciwnika.";
                break;
            }

            okno = new wndKalibracja(min.H, min.S, min.V, max.H, max.S, max.V, kom);

            okno.Show();
            const string tytul = "Kalibracja";

            NamedWindow(tytul);

            while (okno.Otwarte)
            {
                VectorOfVectorOfPoint kontury = new VectorOfVectorOfPoint();
                Mat wyciety = new Mat();
                AnalizujPlansze(WczytajObraz(), new KolorHSV(okno.Hmin, okno.Smin, okno.Vmin), new KolorHSV(okno.Hmax, okno.Smax, okno.Vmax), ref kontury, ref wyciety);

                Imshow(tytul, wyciety);
                Application.DoEvents();
            }

            DestroyWindow(tytul);

            if (okno.DialogResult == DialogResult.OK)
            {
                min = new KolorHSV(okno.Hmin, okno.Smin, okno.Vmin);
                max = new KolorHSV(okno.Hmax, okno.Smax, okno.Vmax);

                switch (element)
                {
                case TypObiektu.Pola:
                    pola_min = min;
                    pola_max = max;
                    break;

                case TypObiektu.Pionki:
                    pionki_min = min;
                    pionki_max = max;
                    break;

                case TypObiektu.Damki:
                    damki_min = min;
                    damki_max = max;
                    break;

                case TypObiektu.PionkiWrog:
                    pionki_wrog_min = min;
                    pionki_wrog_max = max;
                    break;

                case TypObiektu.DamkiWrog:
                    damki_wrog_min = min;
                    damki_wrog_max = max;
                    break;
                }
                ZapiszUstawienia();
            }
        }