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; } }
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(); } }