Exemplo n.º 1
0
        //Métodos Segmentado Semiautomático
        private void semiautomaticoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (textoSegmentado != null)
            {
                textoSegmentado.LiberarTextoManejado();
            }

            textoSegmentado = textoActual.Copia();

            deshabilitarMenus("Segmentado semiautomático");

            conometro.Start();

            //Segmentación líneas
            textoSegmentado.SegmentacionLineas(perfilActual.segmentacion.interlineadoMedio, perfilActual.segmentacion.incrementoMinimoLineas);
            estadoImagenSegmentada = EstadoImagen.lineasSegmentadas;

            ArreglarLineasForm arreglar = new ArreglarLineasForm(this);

            arreglar.ShowDialog();

            if (estadoImagenSegmentada != EstadoImagen.nula)
            {
                imagenSegmentada.habilitarBotonCerrar(false);
            }

            segmentadoSemiautomaticoBackgroundWorker.RunWorkerAsync();
        }
Exemplo n.º 2
0
        private void cancelarButton_Click(object sender, EventArgs e)
        {
            copiaTexto.LiberarTextoManejado();
            textoEscalado.LiberarTextoManejado();

            Close();
        }
Exemplo n.º 3
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;
        }
Exemplo n.º 4
0
        private void abrirFileDialog_FileOk(object sender, CancelEventArgs e)
        {
            if (abrirFileDialog.FileNames.Length > 0)//Se ha seleccionado un archivo
            {
                textoActual.LiberarTextoManejado();

                textoActual.Cargar(abrirFileDialog.FileName);

                estadoImagen = EstadoImagen.nula;

                CargarImagen();
            }
        }
Exemplo n.º 5
0
        private void enderezadoBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            formPadre.habilitarMenus("Enderezado");

            if (formPadre.textoActual != copiaTexto)
            {
                copiaTexto.LiberarTextoManejado();
                copiaTexto = formPadre.textoActual;
            }

            habilitarBotonCerrar(true);

            Close();
        }
Exemplo n.º 6
0
        private void corregirSlopeBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            formPadre.habilitarMenus("Correción Slope");

            if (formPadre.textoSegmentado != copiaTexto)
            {
                copiaTexto.LiberarTextoManejado();
                copiaTexto = formPadre.textoSegmentado;
            }

            habilitarBotonCerrar(true);

            Close();
        }
Exemplo n.º 7
0
        private void obtenerCaracteresBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            formPadre.habilitarMenus("Segmentado caracteres");

            if (formPadre.textoSegmentado != copiaTexto)
            {
                copiaTexto.LiberarTextoManejado();
                copiaTexto = formPadre.textoSegmentado;
            }

            formPadre.estadoImagenSegmentada = EstadoImagen.caracteresSegmentados;

            habilitarBotonCerrar(true);

            Close();
        }
Exemplo n.º 8
0
        private void umbralizadoBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            formPadre.habilitarMenus("Umbralizado");

            if (formPadre.textoActual != copiaTexto)
            {
                copiaTexto.LiberarTextoManejado();
                copiaTexto = formPadre.textoActual;
            }

            formPadre.estadoImagen = EstadoImagen.umbralizada;

            habilitarBotonCerrar(true);

            Close();
        }