public static Linika[] PodzielNaLiniki(ref bool *c, ref Size SamLoto, out ZdjecieZPozycją Logo, bool UżywanieZlepianiaRzutem = false, bool UżywanieRozdzielaniaLiter = true) { Logo = null; int Długość = SamLoto.Width * SamLoto.Height; bool *ObrazKopis = (bool *)Marshal.AllocHGlobal(Długość); OperacjeNaStrumieniu.Kopiuj(ObrazKopis, c, Długość); GC.Collect(); List <ZdjecieZPozycją> ListaZdjęć = new List <ZdjecieZPozycją>(); ObszaryNaZdzieciaZPozycją(ref c, SamLoto, ObrazKopis, ListaZdjęć, out Logo, UżywanieZlepianiaRzutem); Marshal.FreeHGlobal((IntPtr)ObrazKopis); Linika[] z = null; if (UstalKieróne(ref z, ref c, ref SamLoto, ref Logo)) { return(z); } if (UżywanieRozdzielaniaLiter) { RozdzielanieLiter rk = new RozdzielanieLiter(ZbytSzeroki, Sieć); rk.Rodzielaj(ListaZdjęć, c, SamLoto, UżywanieZlepianiaRzutem); } int PrógMimalnejOdległośc = Convert.ToInt32(MaksymalneOdalenie * SamLoto.Width); //w tym momencie lotek powinien być w odpowiedniej pozycji List <Linika> ZwracanePrzedPrzemianą = PrzydzielanieDoLinik(ListaZdjęć, PrógMimalnejOdległośc); ScalajLiniki(ZwracanePrzedPrzemianą); ZlepianieLinijek zl = null; zl = new ZlepianieLinijek(Sieć); zl.ZlepPeknieteLitery(ZwracanePrzedPrzemianą, c, SamLoto.Width); ListaZdjęć = Rozczep(ZwracanePrzedPrzemianą); UsuńNaPoczątku(SamLoto.Width, ListaZdjęć); //PrzypiszPrzesóniecia(ZwracanePrzedPrzemianą); //Przesón(ZwracanePrzedPrzemianą); ZwracanePrzedPrzemianą = PrzydzielanieDoLinik(ListaZdjęć, PrógMimalnejOdległośc); Przesón(ZwracanePrzedPrzemianą); ZwracanePrzedPrzemianą = PrzydzielanieDoLinik(ListaZdjęć, PrógMimalnejOdległośc, true); UsuńSzumy(ZwracanePrzedPrzemianą); ScalajLiniki(ZwracanePrzedPrzemianą, true); PosortujY(ZwracanePrzedPrzemianą); ZlepianieLiterMetodąY(ZwracanePrzedPrzemianą, SamLoto.Width, c, Sieć); ObliczPodobieństwoStworzonychZNeuronową(Sieć, SiećNeuronowa, SamLoto.Width, ZwracanePrzedPrzemianą, c); return(ZwracanePrzedPrzemianą.ToArray()); //return StaryPodziałNaLiniki(SamLoto, ListaZdjęć, sklaerY, TBY); }
private void button2_Click(object sender, EventArgs e) { if (saveFileDialog1.ShowDialog() == DialogResult.OK) { if (openFileDialog2.ShowDialog() == DialogResult.OK) { WieleLotków(); #if DEBUG RozdzielanieLiter.Zapisz(); #endif } } }