示例#1
0
        public ArreglarLineasForm(PrincipalForm Padre)
        {
            InitializeComponent();

            lineaSeleccionada = -1;
            fusionar          = false;

            formPadre     = (PrincipalForm)Padre;
            copiaTexto    = formPadre.textoSegmentado.Copia();
            textoEscalado = copiaTexto.Copia();

            textoEscalado.EscalacionLineal(((double)lineasSegmentadasPictureBox.Size.Width) / copiaTexto.GetAncho(), ((double)lineasSegmentadasPictureBox.Size.Height) / copiaTexto.GetAlto());

            IntPtr ptrDIB;      //Puntero al DIB
            IntPtr ptrMapaBits; //Puntero al mapa de bits en sí (nos saltamos el bitmapinfoheader y la paleta, si la hay)

            unsafe              //Zona no segura (transformación de punteros C++ a C#)
            {
                ptrDIB = (IntPtr)textoEscalado.GetDIB();

                ptrMapaBits = (IntPtr)textoEscalado.GetMapaBits();
            }

            lineasSegmentadasPictureBox.Image = PrincipalForm.BitmapFromDIB(ptrDIB, ptrMapaBits);
        }
示例#2
0
        private void lineasSegmentadasPictureBox_MouseClick(object sender, MouseEventArgs e)
        {
            int linea = textoEscalado.GetLinea(e.Y, e.X);

            textoEscalado.LiberarTextoManejado();

            if (fusionar)
            {
                if (lineaSeleccionada < linea)
                {
                    copiaTexto.Fusionar(lineaSeleccionada, linea);
                }
                else
                {
                    copiaTexto.Fusionar(linea, lineaSeleccionada);
                }
            }

            textoEscalado = copiaTexto.Copia();
            textoEscalado.EscalacionLineal(((double)lineasSegmentadasPictureBox.Size.Width) / copiaTexto.GetAncho(), ((double)lineasSegmentadasPictureBox.Size.Height) / copiaTexto.GetAlto());

            if (!fusionar && linea != -1 && linea != lineaSeleccionada)
            {
                textoEscalado.PintarLinea(linea);
                lineaSeleccionada = linea;
            }
            else
            {
                lineaSeleccionada = -1;
            }

            IntPtr ptrDIB;      //Puntero al DIB
            IntPtr ptrMapaBits; //Puntero al mapa de bits en sí (nos saltamos el bitmapinfoheader y la paleta, si la hay)

            unsafe              //Zona no segura (transformación de punteros C++ a C#)
            {
                ptrDIB = (IntPtr)textoEscalado.GetDIB();

                ptrMapaBits = (IntPtr)textoEscalado.GetMapaBits();
            }

            lineasSegmentadasPictureBox.Image = PrincipalForm.BitmapFromDIB(ptrDIB, ptrMapaBits);

            fusionar = false;
        }
示例#3
0
        private void dividirButton_Click(object sender, EventArgs e)
        {
            copiaTexto.Dividir(lineaSeleccionada);

            textoEscalado.LiberarTextoManejado();

            textoEscalado = copiaTexto.Copia();
            textoEscalado.EscalacionLineal(((double)lineasSegmentadasPictureBox.Size.Width) / copiaTexto.GetAncho(), ((double)lineasSegmentadasPictureBox.Size.Height) / copiaTexto.GetAlto());

            IntPtr ptrDIB;      //Puntero al DIB
            IntPtr ptrMapaBits; //Puntero al mapa de bits en sí (nos saltamos el bitmapinfoheader y la paleta, si la hay)

            unsafe              //Zona no segura (transformación de punteros C++ a C#)
            {
                ptrDIB = (IntPtr)textoEscalado.GetDIB();

                ptrMapaBits = (IntPtr)textoEscalado.GetMapaBits();
            }

            lineasSegmentadasPictureBox.Image = PrincipalForm.BitmapFromDIB(ptrDIB, ptrMapaBits);

            lineaSeleccionada = -1;
        }
示例#4
0
        public void CargarImagenSegmentada()
        {
            IntPtr ptrDIB;      //Puntero al DIB
            IntPtr ptrMapaBits; //Puntero al mapa de bits en sí (nos saltamos el bitmapinfoheader y la paleta, si la hay)

            unsafe              //Zona no segura (transformación de punteros C++ a C#)
            {
                ptrDIB = (IntPtr)textoSegmentado.GetDIB();

                ptrMapaBits = (IntPtr)textoSegmentado.GetMapaBits();
            }

            //Cargamos la imagen en un Form hijo
            if (imagenSegmentada.IsDisposed)
            {
                imagenSegmentada = new ImagenActualForm(Etapa.segmentacion);
            }
            imagenSegmentada.CargarImagen(BitmapFromDIB(ptrDIB, ptrMapaBits));
            imagenSegmentada.MdiParent = this;//Indicamos que PrincipalForm es el padre del formulario
            imagenSegmentada.Show();


            //Habilitado y deshabilitado de menús
            if (estadoImagenSegmentada == EstadoImagen.lineasSegmentadas)
            {
                correcionSlopeToolStripButton.Enabled   = true;
                correcionSlopeToolStripMenuItem.Enabled = true;
                correcionSlantToolStripButton.Enabled   = true;
                correcionSlantToolStripMenuItem.Enabled = true;
                palabrasToolStripButton.Enabled         = true;
                palabrasToolStripMenuItem.Enabled       = true;
                caracteresToolStripButton.Enabled       = false;
                caracteresToolStripMenuItem.Enabled     = false;
                esqueletoToolStripButton.Enabled        = true;
                esqueletoToolStripMenuItem.Enabled      = true;

                reconocimientoToolStripMenuItem.Enabled = false;
                reconocimientoToolStripButton.Enabled   = false;
                ManualToolStripMenuItem.Enabled         = false;
            }

            if (estadoImagenSegmentada == EstadoImagen.palabrasSegmentadas)
            {
                correcionSlopeToolStripButton.Enabled   = false;
                correcionSlopeToolStripMenuItem.Enabled = false;
                correcionSlantToolStripButton.Enabled   = false;
                correcionSlantToolStripMenuItem.Enabled = false;
                palabrasToolStripButton.Enabled         = false;
                palabrasToolStripMenuItem.Enabled       = false;
                caracteresToolStripButton.Enabled       = true;
                caracteresToolStripMenuItem.Enabled     = true;
                esqueletoToolStripButton.Enabled        = true;
                esqueletoToolStripMenuItem.Enabled      = true;

                reconocimientoToolStripMenuItem.Enabled = false;
                reconocimientoToolStripButton.Enabled   = false;
                ManualToolStripMenuItem.Enabled         = false;
            }

            if (estadoImagenSegmentada == EstadoImagen.caracteresSegmentados)
            {
                correcionSlopeToolStripButton.Enabled   = false;
                correcionSlopeToolStripMenuItem.Enabled = false;
                correcionSlantToolStripButton.Enabled   = false;
                correcionSlantToolStripMenuItem.Enabled = false;
                palabrasToolStripButton.Enabled         = false;
                palabrasToolStripMenuItem.Enabled       = false;
                caracteresToolStripButton.Enabled       = false;
                caracteresToolStripMenuItem.Enabled     = false;
                esqueletoToolStripButton.Enabled        = true;
                esqueletoToolStripMenuItem.Enabled      = true;

                reconocimientoToolStripMenuItem.Enabled = true;
                reconocimientoToolStripButton.Enabled   = true;
                ManualToolStripMenuItem.Enabled         = true;
            }
        }
示例#5
0
        //Métodos para cargar imágenes en el form
        public void CargarImagen()
        {
            IntPtr ptrDIB;      //Puntero al DIB
            IntPtr ptrMapaBits; //Puntero al mapa de bits en sí (nos saltamos el bitmapinfoheader y la paleta, si la hay)

            unsafe              //Zona no segura (transformación de punteros C++ a C#)
            {
                ptrDIB = (IntPtr)textoActual.GetDIB();

                ptrMapaBits = (IntPtr)textoActual.GetMapaBits();
            }

            //Cargamos la imagen en un Form hijo
            if (imagenPreprocesada.IsDisposed)
            {
                imagenPreprocesada = new ImagenActualForm(Etapa.preprocesado);
            }
            imagenPreprocesada.CargarImagen(BitmapFromDIB(ptrDIB, ptrMapaBits));
            imagenPreprocesada.MdiParent = this;//Indicamos que PrincipalForm es el padre del formulario
            imagenPreprocesada.Show();


            //Habilitado y deshabilitado de menús
            if (estadoImagen == EstadoImagen.nula)
            {
                estadoImagen = EstadoImagen.cargada;

                guardarToolStripMenuItem.Enabled     = true;
                guardarImagenToolStripButton.Enabled = true;

                preprocesadoToolStripMenuItem.Enabled       = false;
                manualPreprocesadoToolStripMenuItem.Enabled = false;
                escalarToolStripButton.Enabled                  = false;
                escaladoToolStripMenuItem.Enabled               = false;
                umbralizarToolStripButton.Enabled               = false;
                umbralizarToolStripMenuItem.Enabled             = false;
                enderezarToolStripButton.Enabled                = false;
                enderezarToolStripMenuItem.Enabled              = false;
                automaticoPreprocesadoToolStripMenuItem.Enabled = false;

                lineasToolStripButton.Enabled                   = false;
                lineasToolStripMenuItem.Enabled                 = false;
                semiautomaticoToolStripMenuItem.Enabled         = false;
                automaticoSegmentacionToolStripMenuItem.Enabled = false;

                if (textoActual.GetProfundidad() == 8 || textoActual.GetProfundidad() == 24)
                {
                    preprocesadoToolStripMenuItem.Enabled       = true;
                    manualPreprocesadoToolStripMenuItem.Enabled = true;
                    escalarToolStripButton.Enabled                  = true;
                    escaladoToolStripMenuItem.Enabled               = true;
                    umbralizarToolStripButton.Enabled               = true;
                    umbralizarToolStripMenuItem.Enabled             = true;
                    enderezarToolStripButton.Enabled                = true;
                    enderezarToolStripMenuItem.Enabled              = true;
                    automaticoPreprocesadoToolStripMenuItem.Enabled = true;

                    if (textoActual.EstaUmbralizado())
                    {
                        estadoImagen = EstadoImagen.umbralizada;

                        umbralizarToolStripButton.Enabled   = false;
                        umbralizarToolStripMenuItem.Enabled = false;

                        segmentaciónToolStripMenuItem.Enabled       = true;
                        manualSegmentacionToolStripMenuItem.Enabled = true;
                        lineasToolStripButton.Enabled                   = true;
                        lineasToolStripMenuItem.Enabled                 = true;
                        semiautomaticoToolStripMenuItem.Enabled         = true;
                        automaticoSegmentacionToolStripMenuItem.Enabled = true;
                    }
                }
            }
            else
            {
                if (estadoImagen == EstadoImagen.umbralizada)
                {
                    umbralizarToolStripButton.Enabled   = false;
                    umbralizarToolStripMenuItem.Enabled = false;

                    segmentaciónToolStripMenuItem.Enabled       = true;
                    manualSegmentacionToolStripMenuItem.Enabled = true;
                    lineasToolStripButton.Enabled                   = true;
                    lineasToolStripMenuItem.Enabled                 = true;
                    semiautomaticoToolStripMenuItem.Enabled         = true;
                    automaticoSegmentacionToolStripMenuItem.Enabled = true;
                }
            }
        }