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(); } } } }
public void ZamianaWMonohromatyczny(ref Bitmap b) { byte *z = ZamianaWMonohromatyczny(b); b = WstepnePrzygotowanie.WskaźnikNaObraz(z, b.Width, b.Height); Marshal.FreeHGlobal((IntPtr)z); }
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)); } }
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"); }
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 { } }
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"); }
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)); }