public override unsafe void Znajdź(ZdjecieZPozycją Logo, Linika[] lab2, bool *Binaryn, int DługośćWiersza) { LinikaWzgledna[] LinikiWzgledne = LinikaWzgledna.PobierzLinikiWzgledne(lab2); base.ZnajdźDateLosowania(Logo, LinikiWzgledne, Binaryn); float NajlepszyWynik = 0; string[] NajlepszyString = null; foreach (var item in LinikiWzgledne) { if (item.Y > Logo.Obszar.Bottom + Logo.Obszar.Height * 0.6 && (item.Y < base.MiejsceDaty())) { float Podobieństwo = WynikLotoWzór.PodobieństwoIteracyjne(item, 80, (int)ProstokątNaObrazie.IlośćPikseliSQRT); if (Podobieństwo > MinimalnePodobieństwoWyniku) { item.DopasujProporcje(Binaryn, DługośćWiersza); Numery.Add(item.NajlepszeDopasowanieDoLiniki.UstalOdpowiednie(item, StałeGlobalne.DopuszalneOdalenieOdWzorca, RozpoznawanieKuponu.DzienikZamian, WspółczynikUsunieci)); } if (Podobieństwo > NajlepszyWynik) { NajlepszyWynik = Podobieństwo; item.DopasujProporcje(Binaryn, DługośćWiersza); NajlepszyString = item.NajlepszeDopasowanieDoLiniki.UstalOdpowiednie(item, StałeGlobalne.DopuszalneOdalenieOdWzorca, RozpoznawanieKuponu.DzienikZamian, WspółczynikUsunieci); } } } if (Numery.Count == 0) { Numery.Add(NajlepszyString); } }
private void ZaznaczLinike(LinikaWzgledna LkW) { Podobieństwa.Clear(); LinikaWzgledna LinikaZnaleziona = null; float PodobieństwoMax = 0; for (int i = 0; i < listBox1.Items.Count; i++) { LinikaWzgledna TaLinika = LinikiWObrazie[i].PobierzLinikeWzgledną(); float Podobieństwo = LkW.PodobieństwoIteracyjne(TaLinika, 80, (int)ProstokątNaObrazie.IlośćPikseliSQRT); Podobieństwa.Add(Podobieństwo); if (Podobieństwo > PodobieństwoMax) { PodobieństwoMax = Podobieństwo; LinikaZnaleziona = TaLinika; listBox1.SelectedIndex = i; } } ObszarWzgledny[] a; }