コード例 #1
0
        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);
        }
コード例 #2
0
        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
                }
            }
        }