Está en la página 1de 4

1

Tratamiento de imagenes
Felipe Guzman A. , Vargas Eudor A. 808020 808054

ResumenEl presente trabajo contiene la descripci on de los procedimientos realizados con librer a OpenCv para el procesamiento de im agenes. Aqu se incluye una breve descripci on de las funciones utilizadas en la implementaci on de realce y transformaciones de espacios de color y otras transformaciones aplicadas a una imagen.

Palabras Clave OpenCv, Espacios de color, GrayWorld,

I.

OBJETIVOS

Desarrollar programas en los cuales se implementen el realce y el cambio de espacios de color de una imagen. Conocer un poco m as el uso de funciones de OpenCv para el tratamiento de im agenes. Identicar los conceptos y procedimientos matem aticos contenidos en las funciones utilizadas en los c odigos presentados. INTRODUCCI ON

III-2. Realce: El realce es el proceso de hacer una imagen m as interpretable que la imagen original para un objetivo dado. Las t ecnicas de realce de im agenes caen en dos categor as: m etodos en el dominio espacial y m etodos en el dominio frecuencial. Las t ecnicas en el dominio espacial se reeren al plano de la imagen mismo, y est an basadas en manipulaci on directa de los p xeles de la imagen se modica el valor de un pixel en funci on del valor de sus vecinos y las t ecnicas de proceso en el dominio frecuencial est an basadas en modicar la transformada de Fourier de la imagen. III-3. Espacios de color: Los modelos de color describen los colores que se ven en las im agenes digitales y con los que se trabaja. Cada modelo de color como, por ejemplo, RGB, CMYK o HSB representa un m etodo diferente de descripci on de los colores. HLS: HSL (Matiz, Saturaci on, Luminosidad), tambi en llamado HSI, es una forma alternativa de especicar valores de color. HSL es una forma m as intuitiva de hacer frente a color. Aproximadamente, el tono se corresponde con el color real, la saturaci on corresponde a la intensidad del color y la luminosidad corresponde a su brillo. La se nal de tono se relaciona con la percepci on de los colores en los humanos. Su respectiva trasformaci on de RGB a HLS est a dada por: H arctan 3 (G B ) / (2R G B ) S = 1 m n (R, G, B ) /I I (R + G + B ) /3 HSV: Es similar al HSI, trabaja con tres componentes b asicas: matiz, saturac on y brillo. Tonalidad(Hue): Se reere a la frecuencia dominante del color dentro del espectro visible. Es la percepci on de un tipo de color, normalmente la que uno distingue en un arco ris, es rea decir, es la sensaci on humana de acuerdo a la cual un a parece similar a otra o cuando existe un tipo de longitud de onda dominante. Incrementa su valor mientras nos movemos ngulo 0. de forma antihoraria en el cono, con el rojo en el a Saturaci on(Saturation): Se reere a la cantidad del color o ste. Va de un color claro ta un color m a la purezade e as vivo (azul cielo - azul oscuro). Tambi en se puede considerar como la mezcla de un color con blanco o gris. Valor(Value): Es la intensidad de luz de un color. Dicho de otra manera, es la cantidad de blanco o de negro que posee

II.

Los programas desarrollados muestran 5 de los diferentes espacios de color en los que se puede representar una imagen as como algunas t ecnicas para el mejoramiento de esta o de una caracter stica en particular, utilizando algunas trasformaciones como la umbralizaci on, el ltrado,etc. En este apartados e va a hacer una descripci on breve de las funciones que constituyen cada programa. No se mostrar a el c odigo correspondiente a cada programa, simplemente se dar a una visi on detallada de como est a estructurado cada programa y la sintaxis y argumentos de cada funci on utilizada de OpenCv.

III.

M ARCO TEORICO

III-1. Qu e es OpenCv?: OpenCV (Open source Computer Vision library) es una de las librer as abiertas desarrollado por Intel. Esta librer a proporciona un alto nivel funciones para el procesado de im agenes. Estas librer as permiten a los programadores crear aplicaciones poderosas en el dominio de la visi on digital. OpenCV ofrece muchos tipos de datos de alto-nivel como rboles, gr juegos, a acos, matrices, etc. OpenCV es de sotware de c odigo abierto para poder funcionar en muchas plataformas.

: Estudiantes de Ing. Electr onica Univ. Nacional de Colombia sede Manizales

un color. El paso de RGB a HSV est a dada por: H arctan 3 (G B ) / (2R G B ) S = 1 3 m n (R, G, B ) / (R + G + B ) V m ax (R + G + B )

Conversion de XYZ a CIE L*a*b: L = 116f (Y /Yn ) 16 a = 500 [f (X /Xn ) f (Y /Yn )] a = 200 [f (Y /Yn ) f (Z /Zn )] Donde Xn , Yn y Zn son los valores triest mulo CIE XYZ del punto de blanco de referencia. III-4. Trasformaciones:

YUV: El componente Y determina el brillo del color (luminancia o luma), mientras que los componentes U y V determinan el color en s mismo (el croma). YUV es un espacio de color t picamente usado para transmisi on de imagen en color. Codica una imagen o v deo en color teniendo en cuenta la percepci on humana, permite utilizar ancho de banda reducido para los componentes de crominancia, de esta forma, hace que los errores de transmisi on o las imperfecciones de compresi on se oculten m as ecientemente a la percepci on humana que usando una representaci on RGB directa. Espacio YUV es la base del sistema PAL europeo. Su respectiva trasformaci on de RGB a YUV se expresa as : R 0,299 0,587 0,114 Y U = 0,147 0,289 0,437 G B 0,615 0,515 0,100 V

XYZ: Se usa como intermedio en algunas trasformaciones de espacio de color. El espacio de color XYZ se obtiene por transformaci on lineal del sistema RGB y fue introducido por la CIE para evitar los inconvenientes de los triest mulos espectrales R, G y B. Ciertos colores s olo pueden reproducirse con un valor negativo de est mulo. En este caso, los colores primarios empleados XYZ son imaginarios (no representan a una luz f sica) y, al igual que las funciones de igualaci on de color,x () + y () + z (), se derivan de transformaciones de los primarios R, G y B. Por lo tanto tenemos: X 0,412 0,357 0,180 R Y = 0,212 0,715 0,072 G Z 0,019 0,119 0,950 B Lab: Consiste en tres canales, cada uno de los cuales contiene hasta 256 tonalidades diferentes: un canal L de Luminosidad y dos canales crom aticos, A (que oscila entre verde y rojo) y B (que oscila entre azul y amarillo). El componente de luminosidad L va de 0 (negro) a 100 (blanco). Los componentes A (eje rojo-verde) y B (eje azul-amarillo) van de +120 a -120. El modelo de color Lab se basa en el modelo propuesto en 1931 por la CIE (Commission Internationale dEclairage (Comisi on Internacional de Iluminaci on)) como est andar internacional para medir el color. En 1976, este modelo se perfeccion o y se denomin o CIE Lab. Este modo permite cambiar la luminosidad de una imagen sin alterar los valores de tono y saturaci on del color, siendo adecuado para transferir im agenes de unos sistemas a otros, pues los valores crom aticos se mantienen independientes del dispositivo de salida de la imagen.

Umbralizaci on: La umbralizaci on (thresholding) es un m etodo que busca segmentar im agenes escalares creando una partici on binaria de las intensidades de las im agenes. Una umbralizaci on trata de determinar un valor de intensidad, llamado umbral (threshold), que separa la clases deseadas. La segmentaci on se logra agrupando todos los pixeles con mayor intensidad al umbral en una clase, y todos los otros pixeles en otra clase. Sobel: El operador Sobel es utilizado especialmente en algoritmos de detecci on de bordes. T ecnicamente es un operador diferencial discreto que calcula una aproximaci on al gradiente de la funci on de intensidad de una imagen. Para cada punto de la imagen a procesar, el resultado del operador Sobel es tanto el vector gradiente correspondiente como la norma de ste vector. El ltro de Sobel utiliza dos m e ascaras o ltros: una para detectar los bordes verticales y otra para los horizontales. As , para obtener los bordes completos se realiza la suma de las im agenes que nos resultaron con los bordes verticales y horizontales. Suavizado: El suavizado o difuminaci on de la imagen busca reducir contrastes abruptos en la imagen. El suavizado Gaussiano es la media ponderada, donde los pesos toman la forma de una campana de Gauss. Normalmente, el suavizado gaussiano se aplica en dos dimensiones. Los pesos de la m ascara dependen de la distancia al p xel central. Convoluci on: Se denomina convoluci on a una funci on, que de forma lineal y continua, transforma una se nal de entrada en una nueva se nal de salida. La funci on de convoluci on se expresa por el s mbolo *. Un ltro de convoluci on, para una imagen digital, puede representarse como una matriz la cual se desplaza sobre la imagen de tal forma que el elemento central de la matriz de convoluci on coincida con cada uno de los p xeles de la imagen. En cada posici on, se multiplica el valor de cada p xel de la imagen, que coincide en posici on con un ste. El elemento de la matriz de convoluci on, por el valor de e p xel de la imagen, que coincide con el elemento central de la matriz de convoluci on, es substituido por la suma de los productos. IV. IV-5. DE LOS PROGRAMAS D ESCRIPCI ON

Funciones utilizadas de OpenCv:

cvCreateImage(CvSize (size), int depth, int channels): Crea un encabezado de imagen y asigna los datos de la imagen con los siguientes argumentos: size: Se ingresa el ancho y alto de la imagen

depth: bits de profundidad de elementos de la imagen. Hay varios formatos. channels: Numero de canales por p xel. Ejemplo: IplImage* img= cvCreateImage (cvSize (100, 100), IPL DEPTH 8U, 3) : Esto crea una imagen de la anchura altura de 100/100, utilizando n umeros enteros sin signo de 8 bits para representar los valores de color, y con tres canales de color. Sin embargo, los valores nico tipo disponible, los sin signo de 8 bits no son el u valores tambi en pueden ser considerados como n umeros de punto otante de 32 bits (IPL DEPTH 32F) y una variedad de otras maneras. En cada caso la profundidad se representa como IPL DEPTH <bits> USM donde U, S y F representan el punto sin rmar, rmar y otante. es decir: IPL DEPTH 8U IPL DEPTH 8S IPL DEPTH 16U IPL DEPTH 16S IPL DEPTH 32S IPL DEPTH 32F IPL DEPTH 64F Observe tambi en que es un puntero a una imagen,todas las im agenes deben ser creadas de esta manera al utilizar OpenCV ya que la mayor a (si no todos) de sus m etodos de toma de im agenes usa punteros como par ametros para modicar las im agenes directamente. cvCvtColor(const CvArr* src, CvArr* dst, int code): Pasa una imagen de un espacio de color a otro con los siguientes argumentos: src: direcci on donde se encuentra la imagen que se cambiara de espacio. dst: destino donde se guardara la nueva imagen en el nuevo espacio de color. code: operaci on de conversi on de color que se realizar a. cvConvertScale(const CvArr* src, CvArr* dst, double scale=1, double shift=0): Convierte una matriz a otra con la transformaci on lineal opcional. src: direcci on donde se encuentra la imagen que se cambiara de espacio. dst: destino donde se guardara la nueva imagen. scale: Factor de escala. shift: Valor a nadido a la matriz de elementos de origen a escala. CvMat* cvCreateMatHeader(int rows, int cols, int type): La funci on asigna una cabecera nueva matriz y devuelve l. La matriz de datos puede ser asignado un puntero a e utilizando CreateData o establecer expl citamente que el

usuario los datos asignados a trav es de SetData. rows: Un entero que nos dene el numero de las. cols: Un entero que nos dene el numero de columnas. type: Formato que nos dene el tipo de elementos de la matriz. cvThreshold(const CvArr* src, CvArr* dst, double threshold, double maxValue, int thresholdType): Se aplica un nivel jo de umbral de elementos de la matriz. src: direcci on donde se encuentra la imagen. dst: destino donde se guardara la nueva imagen. threshold: valor de umbral. maxValue: Valor m aximo para el uso con los tipos de umbral CV THRESH BINARY y CV THRESH BINARY INV. thresholdType: Tipo de umbralizaci on a utilizar. cvConvertScaleAbs(const CvArr* src, CvArr* dst, double scale=1,double shift=0): Convierte los elementos de entrada a otro conjunto entero sin signo de 8 bits con la transformaci on lineal opcional. src: direcci on donde se encuentra la imagen que se cambiara de espacio. dst: destino donde se guardara la nueva imagen. scale: Factor de escala. shift: Valor a nadido a la matriz de elementos de origen a escala.

V.

G UIA DE U SUARIO

La funci on MAIN es el programa principal, realiza todas las tareas y llamadas a otras funciones necesarias para el correcto funcionamiento. Los programas muestran en consola un listado de la opciones disponibles con las que cuenta, para ingresar solo basta presionar la tecla num erica correspondiente a unas de las opciones que se muestran en pantalla. Luego de seleccionada una opci on el programa ejecuta la funci on correspondiente y saca un conjunto de im agenes en pantalla. Para volver a la ventana de consola solo basta dar click en una imagen y luego presionar la tecla enter con la cual se limpiara la ventana y se mostrar a nuevamente el listado de opciones. Si se presiona una tecla que no corresponda a las opciones mostradas en pantalla se mostrara un mensaje que indica que se ha ingresado una opci on no valida y se pedir a nuevamente teclear una de las opciones de conrmaci on, para conrma presionar la tecla y(yes) o k para salir del programa. VI. C ONCLUSIONES

OpenCv contiene un listado de funciones muy poderosas para el tratamiento de im agenes, sin embargo el poco dominio de este lenguaje hace que aun no se le puede sacar un buen rendimiento del mismo. Creemos que los c odigos realizados se pueden simplicar mas.

Algunos de las t ecnicas para el tratamiento de im agenes se tienen claras a la hora de entender como son las operaciones que hay que realizar, sin embargo a la hora de llevarlo a la implementaci on en c odigo se nos dicult o bastante. En los programas de cambios de espacio de color se observa que al mostrar la imagen en cada una de las composiciones que la integran, se conservan los fondos rojo, azul y verde. R EFERENCIAS
[1] http://es.wikipedia.org/wiki/Teor a del color [2] http://opencv.willowgarage.com/documentation/index.html

También podría gustarte