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); }
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; }
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; }
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; } }
//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; } } }