예제 #1
0
        // probar todas las imagenes de una carpeta
        private void desdeCarpetaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog c = new FolderBrowserDialog();

            c.ShowDialog();

            string rutaCarpetaTest = c.SelectedPath;

            // buscar todos lo archivos de imagen en el directorio
            DirectoryInfo dirs = new DirectoryInfo(rutaCarpetaTest);

            // recorrer cada archivo en el directorio
            int b = 0;

            foreach (var im in dirs.GetFiles("*.jpg", SearchOption.AllDirectories))
            {
                Bitmap imEnt = new Bitmap(im.FullName);

                Analizador.SetImagenEntrada(imEnt);
                Analizador.SetImagenSalida(PictureAnalizer.ImagenColor2Gray(imEnt));

                ImagenEntrada.Image = PictureAnalizer.ImagenEntrada;
                ImagenSalida.Image  = PictureAnalizer.ImagenEntrada;
                ImagenEntrada.Refresh();
                ImagenSalida.Refresh();
                System.Threading.Thread.Sleep(100);

                // crear un histograma
                int[]    h  = PictureAnalizer.Histograma(PictureAnalizer.ImagenEntrada);
                double[] hn = PictureAnalizer.HistogramaNormal(PictureAnalizer.ImagenEntrada);

                // realizar una umbralizacion
                int t = PictureAnalizer.Otsu(hn);
                this.ImagenSalida.Image = PictureAnalizer.Umbralizar(PictureAnalizer.ImagenEntrada, t);
                imEnt = (Bitmap)this.ImagenSalida.Image;
                //PictureAnalizer.GuardarImagenSalida((Bitmap) PictureAnalizer.ImagenEntrada, this.RutaGuardado + "\\OtsuEntrada" + b.ToString()  + im.Name );

                PictureAnalizer.GuardarImagenSalida((Bitmap)this.ImagenSalida.Image, this.RutaGuardado + "\\OtsuSalida" + b.ToString() + im.Name);
                PictureAnalizer.GuardarImagenSalida(PictureAnalizer.DilatarImagen(imEnt, this.MascaraActual, 255), this.RutaGuardado + "\\SalidaDilatada" + b.ToString() + im.Name);
                PictureAnalizer.GuardarImagenSalida(PictureAnalizer.ErocionarImagen(imEnt, this.MascaraActual, 255), this.RutaGuardado + "\\SalidaErocionada" + b.ToString() + im.Name);
                // PictureAnalizer.GuardarImagenSalida( PictureAnalizer.Cerradura(imEnt, this.MascaraActual), this.RutaGuardado + "\\SalidaCerradura" + b.ToString() + im.Name);
                //  PictureAnalizer.GuardarImagenSalida( PictureAnalizer.Apertura(imEnt, this.MascaraActual), this.RutaGuardado + "\\SalidaApertura" + b.ToString() + im.Name);
                PictureAnalizer.GuardarImagenSalida(PictureAnalizer.ExtBorde(imEnt, this.MascaraActual), this.RutaGuardado + "\\SalidaBorde" + b.ToString() + im.Name);

                b++;
                ImagenSalida.Refresh();

                System.Threading.Thread.Sleep(100);
            }
        }
예제 #2
0
 private void bordeToolStripMenuItem_Click(object sender, EventArgs e)
 {
     this.ImagenSalida.Image = PictureAnalizer.ExtBorde((Bitmap)ImagenSalida.Image, this.MascaraActual);
 }
예제 #3
0
        // jsm22
        private void button23_Click(object sender, EventArgs e)
        {
            Mascara m = new Mascara(Mascara.PRDF_Estr_Bcdd, new Size(3, 3), new Point(1, 1));

            ImagenEntrada.Image = PictureAnalizer.ExtBorde((Bitmap)ImagenEntrada.Image, m);
        }