Beispiel #1
0
        private unsafe void testoweToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog fsb = new FolderBrowserDialog();

            if (fsb.ShowDialog() == DialogResult.OK)
            {
                DirectoryInfo ds = new DirectoryInfo(fsb.SelectedPath);
                FileInfo[]    fi = ds.GetFiles("*.jpg");
                if (fsb.ShowDialog() == DialogResult.OK)
                {
                    for (int i = 0; i < fi.Length; i++)
                    {
                        Bitmap f = new Bitmap(fi[i].FullName);
                        f = new Bitmap(f, f.Size.Skaluj((float)1 / RozpoznawanieKuponu.StopieńZmiejszenia));
                        byte *Mon = OperacjeNaStrumieniu.PonierzMonohormatyczny(f);
                        bool *Bin = ProgowanieAdaptacyjne.ProgowanieZRamką(Mon, f.Size, Otsu.ZnajdywanieRóźnicyŚrednich(Mon, f.Size), 6, -20, true);
                        int * Mapa;
                        //var Obszary= WstepnePrzygotowanie.ZnajdźOpszary(ref Bin, f.Size.Width, f.Size.Height,out Mapa);
                        //Obszary.Sort();
                        //var Najwiekszy = Obszary[0];
                        //Zw = WstepnePrzygotowanie.PobierzObszar(Bin, Najwiekszy.Miejsce, f.Size);
                        f = WstepnePrzygotowanie.WskaźnikNaObraz(Bin, f.Size);
                        f.Save(fsb.SelectedPath + "\\" + i.ToString() + "zap.bmp");
                        //Marshal.FreeHGlobal((IntPtr)Zw);
                        Marshal.FreeHGlobal((IntPtr)Bin);
                        GC.Collect();
                    }
                }
            }
        }
Beispiel #2
0
        public void ZamianaWMonohromatyczny(ref Bitmap b)
        {
            byte *z = ZamianaWMonohromatyczny(b);

            b = WstepnePrzygotowanie.WskaźnikNaObraz(z, b.Width, b.Height);
            Marshal.FreeHGlobal((IntPtr)z);
        }
Beispiel #3
0
 unsafe private void otwórzToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (openFileDialog1.ShowDialog() == DialogResult.OK)
     {
         działajToolStripMenuItem.Enabled = true;
         Dana = new Bitmap(openFileDialog1.FileName);
         //Dana = new Bitmap(new Bitmap(openFileDialog1.FileName), 3264, 2448);
         bool *c = Otsu.OtsuGlobalneNaTablice(OperacjeNaStrumieniu.PonierzMonohormatyczny(Dana), new Size(Dana.Width, Dana.Height));
         pictureBox1.Image = new Bitmap(WstepnePrzygotowanie.WskaźnikNaObraz(c, Dana.Width, Dana.Height), new Size(1000, 1000));
     }
 }
Beispiel #4
0
        private static unsafe void ZlepianieRzutami(Size samLoto, bool *obrazKopis, List <ZdjecieZPozycją> Dodawane)
        {
            Bitmap   b = WstepnePrzygotowanie.WskaźnikNaObraz(obrazKopis, samLoto);
            Graphics g = Graphics.FromImage(b);

            foreach (var item in Dodawane)
            {
                g.DrawRectangle(new Pen(Color.Red), item.Obszar);
            }
            g.Dispose();
            b.Save("ZlepianieMetodąZRzutami.bmp");
        }
Beispiel #5
0
        private unsafe void WyświetlObraz(bool *binarny, Bitmap SamLoto, ZdjecieZPozycją Logo, object o)
        {
            Bitmap          bp = WstepnePrzygotowanie.WskaźnikNaObraz(binarny, SamLoto.Width, SamLoto.Height).Clone(Logo.Obszar, PixelFormat.Format24bppRgb);
            FormatkaObrazka ob = new FormatkaObrazka();

            ob.Obraz = bp;
            if (o is bool)
            {
                ZdjecieLoga = bp;
            }
            else
            {
            }
        }
Beispiel #6
0
        unsafe static void Main(string[] arg)
        {
            Size  s = new Size(200, 200);
            bool *m = (bool *)Marshal.AllocHGlobal(10000000);

            OperacjeNaStrumieniu.Czyść(m, s.WielkoścWPix());
            SprawdzanieWypełnienia sp = new SprawdzanieWypełnienia(3, m, s);

            sp.MalujLinie(new Point(80, 30), new Point(30, 30));
            sp.MalujLinie(new Point(10, 10), new Point(30, 30));

            sp.MalujLinie(new Point(80, 30), new Point(10, 10));
            WstepnePrzygotowanie.WskaźnikNaObraz(m, s).Save("ta2.jpg");
        }
Beispiel #7
0
        private static void ObszaryNaZdzieciaZPozycją(ref bool *c, Size SamLoto, bool *ObrazKopis, List <ZdjecieZPozycją> ListaZdjęć, out ZdjecieZPozycją Logo, bool UżywajZlepianiaRzutem)
        {
            Logo = null;
            int * MapaSpójnychObszarów;
            float NajbardzjeLogowaty = 0;

            List <WstepnePrzygotowanie.ObiektNaMapie> Obszary = WstepnePrzygotowanie.ZnajdźOpszary(ref c, SamLoto.Width, SamLoto.Height, out MapaSpójnychObszarów);

            foreach (var item in Obszary)
            {
                Rectangle       rl = new Rectangle(item.MinX, item.MinY, item.MaxX - item.MinX + 1, item.MaxY - item.MinY + 1);
                ZdjecieZPozycją z  = new ZdjecieZPozycją();
                z.Obszar        = rl;
                z.Moc           = item.Moc;
                z.ObiektNaMapie = item;
                z.ObliczPodobieństwo(c, SamLoto.Width, Sieć);
                //usóń w dalszej fazie i Usń też Kopie
                z.ObrazWBool = WstepnePrzygotowanie.PobierzObszar(ObrazKopis, z, SamLoto.Width, SamLoto.Height);
                if (SprawdźPoprawne(item))
                {
                    ListaZdjęć.Add(z);
                }
                float Logowatość = ObliczLogowatość(z);
                if (Logowatość > NajbardzjeLogowaty)
                {
                    NajbardzjeLogowaty = Logowatość;
                    Logo = z;
                }
            }
            WczytajParametry(Logo);
            if (UżywajZlepianiaRzutem)
            {
                ZlepianieLiterRzutami zlk = new ZlepianieLiterRzutami(ŚredniaSzerokość, ŚredniaWysokość);
                zlk.Zlepiaj(MapaSpójnychObszarów, Sieć, SamLoto, c, ListaZdjęć);
            }


            Marshal.FreeHGlobal((IntPtr)MapaSpójnychObszarów);
        }
        internal Bitmap PobierzObrazBool()
        {
            Size sz = Obszar.Size;

            return(WstepnePrzygotowanie.WskaźnikNaObraz(ObrazWBool, sz.Width, sz.Height));
        }