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