Escolar Documentos
Profissional Documentos
Cultura Documentos
Pag. 1
1.1 Expansin del histograma El algoritmo calcular automticamente el rango a expandir, partiendo del porcentaje de puntos excluidos, asignndolos a partes iguales a los niveles superior e inferior del histograma.
Histograma N 256 Funcin de Correspondencia
128
64
128
192
256
0 Min
128
256 Max
Min
Max
Pag. 2
CARPETA: Library FICHERO: Enhancent.cpp // Funcin de realce por expansin del histograma mediante corte de colas // El resultado se devuelve en la misma imagen de entrada void imageHistogramExpand(unsigned char **Image, int Filas, int Cols, int degradation) { }
NOTA: Utilice la funcin DisplayImageHistogram antes y despus de la ecualizacin para comprobar cmo cambia el histograma. 1.2 Ecualizacin del Histograma Desarrolle las funciones necesarias siguiendo el algoritmo conocido. Deber programar las siguiente funciones:
CARPETA: Pannels FICHERO: P3_Enhance.cpp VISIONDLL_API long fnButtonHistoEqualization( { return 0; } CARPETA: Library FICHERO: Enhancent.cpp // El resultado se devuelve en la misma imagen de entrada void imageHistogramEqualization(unsigned char **Image, int Filas, int Cols) { } unsigned char **Image, int Filas, int Cols)
NOTA: Utilice la funcin DisplayImageHistogram antes y despus de la ecualizacin para comprobar cmo cambia el histograma.
Fco Javier Molina Cantero Pag. 3
1.3 Expansin del Histograma en imgenes a color Existen numerosas adaptaciones del algoritmo de expansin del histograma para realce de imgenes a color. En casi todas son comunes los siguientes pasos: Seleccionar una banda Calcular a partir de esta banda una funcin de correspondencia, usando alguno de los mtodos conocidos para imgenes monocromticas (expansin, ecualizacin, ...) Aplicar la funcin de correspondencia a todas.
En el caso de la expansin, este proceso significa que los colores (RGB) son convertidos a (RGB) mediante una constante de proporcionalidad. Cabe por tanto esperar que mantenga los colores originales intactos. Sin embargo, esta hiptesis es incorrecta. A) Razone por qu. B) En este ejercicio proponemos un algoritmo alternativo. Consiste en calcular a partir de los histogramas de las tres bandas, los valores Max y Min de la curva de expansin con el siguiente criterio: Calcular Max y Min para cada banda utilizando el porcentaje de puntos excluidos. Seleccionar como Max el mayor de los obtenidos en las tres bandas Seleccionar como Min el menor de los obtenidos en las tres bandas
C) Est garantizado ahora el mantenimiento de las proporciones entre colores ?.Dnde radica entonces la ventaja de este algoritmo?. Programe el algoritmo descrito en las siguientes funciones:
CARPETA: Pannels FICHERO: P3_Enhance.cpp VISIONDLL_API long fnButtonHistoColorExpand( unsigned char *R, unsigned char *G, unsigned char *B, int Filas, int Cols, float Degradacion) { return 0; }
Pag. 4
CARPETA: Library FICHERO: Enhancent.cpp void imageColorHistogramExpand( unsigned char *R, unsigned char *G, unsigned char *B, int Filas, int Cols, float degradacion) { return 0; }
1.4 Ecualizacin del Histograma L en imgenes a color La tcnica de Ecualizacin del Histograma tambin puede extenderse a imgenes en color, aunque su aplicacin directa sobre las bandas R, G B no garantiza que se mantenga la tinta de los colores. Un sencillo algoritmo basado en las transformaciones RGB - HLS puede reducir este problema: Transformar la imagen RGB a HLS Aplicar el algoritmo de ecualizacin a la matriz L Invertir la imagen HLS a RGB
Empleando las funciones desarrolladas en la librera de color, slo deber programar las siguientes:
CARPETA: Library FICHERO: Enhancent.cpp VISIONDLL_API long fnButtonLumEqualization( unsigned char **R, unsigned char **G, unsigned char **B, int Filas, int Cols) { return 0; } CARPETA: Library FICHERO: Enhancent.cpp void imageLumEqualizationColor( unsigned char **R,unsigned char **G, unsigned char **B, int Filas,int Cols) { }
Pag. 5
2. IMGENES DE TEST
Fichero: copter.bmp
Fichero: infrared.bmp
Fichero: hotel.bmp
Pag. 6