private void AgregarBoton_Click(object sender, EventArgs e) { EnvoltorioFiltro ef = null; if (MedianaRadio.Checked) { ef = new EnvoltorioFiltro(EnvoltorioFiltro.Tipo.Mediana, 0); } else if (MediaRadio.Checked) { int param = MediaBarra.Value * 2 + 3; ef = new EnvoltorioFiltro(EnvoltorioFiltro.Tipo.Media, param); } else if (FourierRadio.Checked) { int param = 0; switch (FourierBarra.Value) { case 0: param = 256 / 6; break; case 1: param = 256 / 5; break; case 2: param = 256 / 3; break; } ef = new EnvoltorioFiltro(EnvoltorioFiltro.Tipo.Fourier, param); } ListaFiltros.Items.Add(ef); ListaFiltros.SelectedIndex = ListaFiltros.Items.Count - 1; }
private void RBackWorker_DoWork(object sender, DoWorkEventArgs e) { EnvoltorioFiltro[] filtros = new EnvoltorioFiltro[ListaFiltros.Items.Count]; ListaFiltros.Items.CopyTo(filtros, 0); int numPasosFiltro = 0; foreach (EnvoltorioFiltro ev in filtros) { if (ev.TipoFiltro == EnvoltorioFiltro.Tipo.Fourier) { numPasosFiltro += 3; } else { numPasosFiltro++; } } int numPasos = 1 + 4 + numPasosFiltro; if (noRamas) { numPasos += 2; } int progreso = 100 / numPasos; int i = 0; RPasos = new Bitmap[numPasos]; RTxtDescripcion = new string[numPasos]; Realce r = new Realce(RImagen); RPasos[i] = RImagen; RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.Original, 0); i++; RBackWorker.ReportProgress(progreso); RPasos[i] = r.ReescaladoBicubico(512, 512); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.Reescalado, 0); i++; RBackWorker.ReportProgress(progreso); RPasos[i] = r.EscalaGrises(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.EscalaGrises, 0); i++; RBackWorker.ReportProgress(progreso); foreach (EnvoltorioFiltro filtro in filtros) { switch (filtro.TipoFiltro) { case EnvoltorioFiltro.Tipo.Mediana: RPasos[i] = r.FiltroMediana(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.FiltroMediana, 0); i++; RBackWorker.ReportProgress(progreso); break; case EnvoltorioFiltro.Tipo.Media: RPasos[i] = r.FiltroMedia(filtro.Parametro); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.FiltroMedia, filtro.Parametro); i++; RBackWorker.ReportProgress(progreso); break; case EnvoltorioFiltro.Tipo.Fourier: RPasos[i] = r.ImagenCompleja(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.FiltroFourierTransformada, 0); i++; RBackWorker.ReportProgress(progreso); RPasos[i] = r.FiltroPasoBajo(filtro.Parametro); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.FiltroFourierPasoBajo, filtro.Parametro); i++; RBackWorker.ReportProgress(progreso); RPasos[i] = r.ImagenNormal(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.FiltroFourierInversa, 0); i++; RBackWorker.ReportProgress(progreso); break; } } RPasos[i] = r.BinarizacionIterativa(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.Binarizacion, r.umbral); i++; RBackWorker.ReportProgress(progreso); if (noRamas) { RPasos[i] = r.FiltroMediana(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.FiltroMedianaNoRamas, 0); i++; RBackWorker.ReportProgress(progreso); RPasos[i] = r.BinarizacionIterativa(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.Binarizacion, r.umbral); i++; RBackWorker.ReportProgress(progreso); } RPasos[i] = r.Adelgazar(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.Adelgazamiento, 0); RBackWorker.ReportProgress(progreso); }
private void AgregarBoton_Click(object sender, EventArgs e) { EnvoltorioFiltro ef = null; if (MedianaRadio.Checked) ef = new EnvoltorioFiltro(EnvoltorioFiltro.Tipo.Mediana, 0); else if (MediaRadio.Checked) { int param = MediaBarra.Value * 2 + 3; ef = new EnvoltorioFiltro(EnvoltorioFiltro.Tipo.Media, param); } else if (FourierRadio.Checked) { int param = 0; switch (FourierBarra.Value) { case 0: param = 256 / 6; break; case 1: param = 256 / 5; break; case 2: param = 256 / 3; break; } ef = new EnvoltorioFiltro(EnvoltorioFiltro.Tipo.Fourier, param); } ListaFiltros.Items.Add(ef); ListaFiltros.SelectedIndex = ListaFiltros.Items.Count - 1; }
private void RBackWorker_DoWork(object sender, DoWorkEventArgs e) { EnvoltorioFiltro[] filtros = new EnvoltorioFiltro[ListaFiltros.Items.Count]; ListaFiltros.Items.CopyTo(filtros, 0); int numPasosFiltro = 0; foreach (EnvoltorioFiltro ev in filtros) { if (ev.TipoFiltro == EnvoltorioFiltro.Tipo.Fourier) numPasosFiltro += 3; else numPasosFiltro++; } int numPasos = 1 + 4 + numPasosFiltro; if (noRamas) numPasos += 2; int progreso = 100 / numPasos; int i = 0; RPasos = new Bitmap[numPasos]; RTxtDescripcion = new string[numPasos]; Realce r = new Realce(RImagen); RPasos[i] = RImagen; RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.Original, 0); i++; RBackWorker.ReportProgress(progreso); RPasos[i] = r.ReescaladoBicubico(512, 512); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.Reescalado, 0); i++; RBackWorker.ReportProgress(progreso); RPasos[i] = r.EscalaGrises(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.EscalaGrises, 0); i++; RBackWorker.ReportProgress(progreso); foreach (EnvoltorioFiltro filtro in filtros) { switch (filtro.TipoFiltro) { case EnvoltorioFiltro.Tipo.Mediana: RPasos[i] = r.FiltroMediana(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.FiltroMediana, 0); i++; RBackWorker.ReportProgress(progreso); break; case EnvoltorioFiltro.Tipo.Media: RPasos[i] = r.FiltroMedia(filtro.Parametro); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.FiltroMedia, filtro.Parametro); i++; RBackWorker.ReportProgress(progreso); break; case EnvoltorioFiltro.Tipo.Fourier: RPasos[i] = r.ImagenCompleja(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.FiltroFourierTransformada, 0); i++; RBackWorker.ReportProgress(progreso); RPasos[i] = r.FiltroPasoBajo(filtro.Parametro); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.FiltroFourierPasoBajo, filtro.Parametro); i++; RBackWorker.ReportProgress(progreso); RPasos[i] = r.ImagenNormal(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.FiltroFourierInversa, 0); i++; RBackWorker.ReportProgress(progreso); break; } } RPasos[i] = r.BinarizacionIterativa(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.Binarizacion, r.umbral); i++; RBackWorker.ReportProgress(progreso); if (noRamas) { RPasos[i] = r.FiltroMediana(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.FiltroMedianaNoRamas,0); i++; RBackWorker.ReportProgress(progreso); RPasos[i] = r.BinarizacionIterativa(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.Binarizacion, r.umbral); i++; RBackWorker.ReportProgress(progreso); } RPasos[i] = r.Adelgazar(); RTxtDescripcion[i] = RObtenerDescripcion(RTipoDescripcion.Adelgazamiento, 0); RBackWorker.ReportProgress(progreso); }