Sunteți pe pagina 1din 7

1

UNIVERSIDAD DEL QUINDIO, INGENIERA ELECTRNICA. PROCESAMIENTO DIGITAL DE IMGENES.

Practica 1: Caractersticas de una Imagen


Alejandro Cifuentes Aragn Cd. 1094933313. Cesar Ardila Rojas Cd. 1094931450. Procesamiento Digital de Imgenes. Programa de Ingeniera Electrnica, Facultad de Ingeniera, Universidad del Quindo - Colombia
Resumen En este trabajo se presenta la forma de cmo analizar una imagen (brillo, contraste, histograma, informacin, adems realizar operaciones entre imgenes), mediante el software matlab ya que contiene una serie de comandos que hace ms amena dicha caracterizacin; adems encontrara el procedimiento detallado de como analizar una imagen (cdigos) y finalmente vera una interfaz que le permite visualizar cada campo de la imagen deseado. Abstract In this paper we present the way how to analyze an image (Brightness, Contrast, Histogram, information and operation between imagenes), using the matlab software because it contains a series of commands that such characterization becomes more enjoyable, plus find the detailed procedure of how to analyze an image (codes) and finally vera an interface that allows you to display each field of the desired image. Palabras clave imagen, pixel, contraste, brillo, histograma, operaciones Keywords image, pixel, contrast, brightness, histogram, operations. Imresize: ajusta la imagen al tamao de la ventana donde se carga la imagen. Imcrop: recorta la imagen segn elija el usuario. A continuacin se mostrar el procedimiento realizado para obtener lo mencionado anteriormente.

II. Generales:

OBJETIVOS

Llegar a una completa caracterizacin de una imagen mediante el software matlab ya sea en cdigo (programacin) o mediante comandos ya establecidos, haciendo uso de una interfaz para la presentacin de resultados.

Especficos: Hacer uso de la interfaz guide, para la presentacin de resultados. Realizar conversiones de imgenes de color a escala de grises y de pixeles en diferentes tamaos de bits. Revisar los diferentes tipos y formatos imgenes que existen e identificar en cuales se hace posible trabajar en Matlab. Analizar cmo realizar operaciones entre imgenes de una manera correcta.

I. INTRODUCCIN El procesamiento digital de imgenes es el la combinacin de tcnicas que se aplican a las imgenes digitales con el objetivo de mejorar la calidad y facilitar la bsqueda de informacin, con el fin aprender acerca de las caractersticas de una imagen y la forma en cmo podemos modificarla hasta obtener un buen resultado, Basados en el programa Matlab y gracias a la gran cantidad de aplicaciones que posee como lo la interfaz grfica guide que son herramientas que usaremos para este trabajo y se observara su comportamiento a travs del histograma el cual es representacin grfica de los niveles de intensidad del color de la imagen con respecto al nmero de pxeles presentes en la imagen con cada intensidad de color y se realizaran una serie de operaciones y ajustes a las imgenes tales como escalado, recorte y rotaciones. Las funciones que se utilizaron en la plataforma de Matlab realizan las siguientes operaciones: Imrotate: Gira la imagen dndole un ngulo especifico. III. MATERIALES Software Matlab (command window, editor e interfaz). Imgenes en extensin .jpg. Computador porttil o de escritorio que soporte Matlab.

IV. MARCO TERICO Una imagen digital est compuesta de pxeles los cuales pueden definirse como pequeos puntos en la pantalla o imagen. Cada pxel es capaz de proporcionar informacin visual acerca de una pequea regin en particular de la imagen. A partir de esto, se puede considerar a una Imagen Digital, como un arreglo de instrucciones de cmo se

UNIVERSIDAD DEL QUINDIO, INGENIERA ELECTRNICA. PROCESAMIENTO DIGITAL DE IMGENES.

encuentra coloreado cada pxel. En general se puede decir que una imagen de m por n si est compuesta de m pxeles en la direccin vertical y n pxeles en la direccin horizontal. El sistema de coordenadas empleado para la ubicacin de cada pxel de la imagen es como se muestra la figura

Tipos de imgenes El tipo de dato matriz, que contendr una imagen puede ser de varios tipos (segn el tipo de dato de cada pixel): double Doble precisin, nmeros en punto flotante que varan en un rango aproximado de -10308 a 10308 (8 bytes por elemento). uint8 Enteros de 8 bits en el rango de [0,255] (1 byte por elemento) uint16 Enteros de 16 bits en el rango de [0, 65535] (2 bytes por elemento) uint32 Enteros de 32 bits en el rango de [0, 4294967295] (4 bytes por elemento) int8 Enteros de 8 bits en el rango de [-128, 127] (1 byte por elemento) int16 Enteros de 16 bits en el rango de [- 32768, 32767] (2 bytes por elemento) int32 Enteros de 32 bits en el rango de [2147483648,2147483647] (4 bytes por elemento) logical Los valores son 0 1 (1 bit por elemento) HISTOGRAMA

Figura.1 Sistema de coordenadas en la ubicacin de cada pxel. Las imgenes digitales en MATLAB se representan por medio de un arreglo de nmeros reales o complejos. Dicho arreglo puede ser bidimensional o tridimensional, dependiendo del tipo de imagen de que se trate. Los formatos de imagen soportados por matlab son:

El histograma es una representacin grfica de una variable en forma de barras. La superficie de cada una de las barras mostradas es proporcional a la frecuencia de los valores representados. En el eje vertical se representan las frecuencias, y en el eje horizontal los valores de las variables, de modo que ser ms alta, o tendr ms superficie, aquel valor que ms se repite.

Figura.2 Formatos que soportados Matlab

La Profundidad de Bits viene determinada por la cantidad de bits utilizados para definir cada pxel. Mientras mayor sea la profundidad de bits, mayor ser la cantidad de tonos (escala de grises o color) que se pueden representar. Las imgenes digitales se pueden producir en blanco y negro (en forma bitonal), a escala de grises o a color.

Figura 3. Representacin de un histograma V. PROCEDIMIENTO Para la realizacin de dicha prctica de laboratorio lo primero que se realizo fue la obtencin de todas las imgenes

UNIVERSIDAD DEL QUINDIO, INGENIERA ELECTRNICA. PROCESAMIENTO DIGITAL DE IMGENES.

a las que se le iban a realizar el anlisis, ya sea de la librera de matlab o de otra parte solo que almacenadas en la carpeta que se crea por defecto al instalar matlab, luego el primer proceso en realizarse fue la lectura de las imgenes. Las imgenes con las que se trabaj en esta prctica fueron:

matemticas que permiten llegar a total exactitud, siendo estas:

Para lo cual se realiz el siguiente cdigo en forma de funcin: Fig 1. Aurora.jpg


function [B C I]= caract(a,p) [n m]=size(a); b=0; %brillo for i=1:n for j=1:m b=b+double(a(i,j)); end end B=b/(n*m); %contraste c=0; for i=1:n for j=1:m c=c+(double(a(i,j))-B)^2; end end C=sqrt(c/(n*m)); %informacion if p==2 I=imfinfo('aurora.jpg'); end if p==3 I=imfinfo('cocora.jpg'); end if p==4 I=imfinfo('mariposas.jpg'); end end

Fig 2. atardecer.jpg

%Brillo Como lo que se tienen son sumatorias que van recorriendo la imagen, se inicializa un contador en cero que ser el resultado de las sumatorias, luego se halla el tamao de las imgenes en filas por columnas ya que hasta ah es donde van a hallar el brillo En la siguiente parte del cdigo lo que se realiza son dos for anidados para que recorra la imagen y dentro de tal recorrido va incrementando el contador antes mencionado y le va sumando los puntos que va calculando en este caso se utiliza el doubl ya que la imagen es de 8bits y tiene buena precisin.

Fig 3. amor.jpg La siguiente fase en elaborarse fue calcular el brillo y el contraste de la imagen mediante implementacin de cdigo solo que para estas dos caractersticas se tiene frmulas

UNIVERSIDAD DEL QUINDIO, INGENIERA ELECTRNICA. PROCESAMIENTO DIGITAL DE IMGENES.

Finalmente para ya completar la ecuacin se toma el resultado final b y lo divide en las dimensiones halladas de la imagen, obteniendo con esto el brillo.

Ademas se recibe el valor de un popup men donde se elige si el escalado es con interpolacin del vecino ms cercano, bilinear y bicubica. %rotar Para esta implementacin se us la funcin

%Contraste Luego para la implementacin de la ecuacin de contraste se observa que tienen mucha similitud lo nico que cambia es que se le resta el brillo y se le saca la raz cuadrada, por tanto en las sumatorias solo se pone a restar el brillo hallado anteriormente y elevado todo al cuadrado. Despus de haber hallado de nuevo las sumatorias ya con los cambios, se le saca la raz cuadrada a la sumatoria hallada sobre la multiplicacin de sus dimensiones. Ya para culminar dicho anlisis de las imgenes la ltima fase fue en la elaboracin de un cdigo que realizara el histograma de cada una de ellas suministrando informacin de si la imagen se puede decir si es clara u oscura. Igualmente se lee la imagen a la cual se le har el anlisis, a=imread('aurora.jpg'); Como en este caso se presenta que es una imagen a color se procede a transformarla a escala de grises para poder realizar el histograma usando el siguiente comando: axes(handles.im1); imshow(a) axes(handles.im2); imhist(rgb2gray(a)) %Informacin Para el punto de la informacion de la imagen se implement el siguiente cdigo para las tres imgenes. I=imfinfo('aurora.jpg'); %recortar Para este punto se implement el codigo: A=imcrop(A) El cual realizo la funcin especifica para dicho punto . %escalar En esta parte del programa se implement la funcin a continuacin: es1=handles.esc; x= imresize(es, es1,'nearest'); Donde se recibe un valor numrico de un Edit. Text y ese valor es el factor de escalado para la imagen.

Ni=handles.imag; if r==2 b= imrotate(Ni,45); axes(handles.im4); imshow(b) end if r==3 b= imrotate(Ni,90); axes(handles.im4); imshow(b) end if r==4 b= imrotate(Ni,135); axes(handles.im4); imshow(b) end if r==5 b= imrotate(Ni,180); axes(handles.im4); imshow(b) end if r==6 b= imrotate(Ni,225); axes(handles.im4); imshow(b) end if r==7 b= imrotate(Ni,270); axes(handles.im4); imshow(b) end if r==8 b= imrotate(Ni,315); axes(handles.im4); imshow(b) end

Donde dependiendo del ngulo de rotacin elegido por el usuario se rotaba la imagen (45, 90, 135, 180, 225, 270, 315) grados. %operaciones Para realizar operaciones tales como suma, multiplicacin, divisin o resta por una constante, se implemento el cdigo de la siguiente manera:
k=handles.ctn; h1=handles.imag; h=rgb2gray(h1); [n m]=size(k); %s=zeros(n,m); if t==2 for i=1:n for j=1:m h(i,j)=double(h(i,j))+k; end end end if t==3 for i=1:n for j=1:m h(i,j)=double(h(i,j))-k;

UNIVERSIDAD DEL QUINDIO, INGENIERA ELECTRNICA. PROCESAMIENTO DIGITAL DE IMGENES.

end end end if t==3 for i=1:n for j=1:m h(i,j)=double(h(i,j))*k; end end end if t==4 for i=1:n for j=1:m h(i,j)=double(h(i,j))/k; end end end axes(handles.im6); imshow(h) axes(handles.im7) imhist(h)

Figura 4. Diagrama final de la interfaz realizada Para los cuales mediante los callbacks de los diferentes tipos de botones y textos se implementaron cada uno de los programas antes mencionados solo que a la hora de retornar dichos resultados se arreglaban al formato especificado, y mediante el popup men fue como un case que permita la realizacin de cada proceso ante una imagen elegida; al simular dicha interfaz se obtuvieron los siguientes resultados encontrados en la siguiente seccin. VI. ANLISIS Y RESULTADOS A continuacin se muestras seis imgenes las cuales muestran dentro de cada una la imagen original, el histograma, el nivel de brillo y contraste, el ancho y la altura de cada una, la imagen que quiere recortar, la imagen rotada, escala, la imagen con operacin aritmtica, su respectivo histograma, se ilustra la imagen que se quiere combinar con la primera selecciona y por ultima la combinacin de estas dos. Siguiente de esto, se muestran las figuras con diferentes parmetros y diferentes combinaciones (fig. 5-9), las imgenes que se analizaron presentan formato (jpg):

Donde dependiendo de la operacin seleccionada por el usuario se ingresa a la opcin 1, 2, 3 o 4, donde se toma el valor de un edit text el cual impone el valor de la constante para realizar la operacin, seguido de esto se realiza el histograma de la imagen resultante para hacerle su posterior anlisis. %operaciones boleanas Para la implementacin de las operaciones boleanas primero se pasaron las imgenes a binarias para poder realizar las operaciones, implementando el siguiente cdigo:
b=im2bw(rgb2gray(b1)); c=im2bw(rgb2gray(a1)); if op==2 ans= b & c; end if op==3 ans= b | c; end if op==4 ans= xor (b , c); end axes(handles.im9); imshow(ans)

Finalmente para la presentacin de resultados se realiz una interfaz grfica la cual solo consiste en aplicar diferentes botones de accin que me permitirn ingresar los cdigos antes realizados, solo que teniendo en cuenta como es el formato en el cual se deber retornar para que la muestre en los campos de la interfaz, para los cuales el guide realizado fue:

Figura 5. Anlisis completo para la imagen aurora.jpg y la imagen atardecer.jpg

UNIVERSIDAD DEL QUINDIO, INGENIERA ELECTRNICA. PROCESAMIENTO DIGITAL DE IMGENES.

Figura 6. Anlisis completo para la imagen atardecer.jpg y la imagen aurora.jpg

De acuerdo al histograma de cada foto se puede caracterizar una imagen por su compostura, es decir, si su escala de grises se encuentra ms hacia la izquierda tiende a ser ms oscura la imagen, como la podemos observar en las figuras (5 y 6) que el histograma que se muestra en la parte superior de cada figura representa su escala de grises para las imgenes de aurora.jpg (fig. 5) y atardecer.jpg (fig. 6). Para la imagen de amor.jpg su histograma se encuentra distribuido de forma diferente en donde sus picos ms altos se encuentran al lmite de la tonalidad gris y al lmite de la tonalidad blanca; a partir de estos se puede calcular tanto su brillo como su contraste. Al realizar operaciones aritmticas, ya sea, sumas, multiplicaciones, restas o divisiones entre constantes, estas hacen que el histograma cambie, ya que al suma una constante a la imagen esta va a tender hacia el lado derecho de la escala, es decir q su nivel de blancura o si es la resta ocurrir lo contrario se tornar ms oscura. Por otro la multiplicacin hace q los pixeles q estn en rangos bajos se incremente mas no su posicin, es decir su nitidez aumenta, pero lo contrario ocurre con la divisin. En cuanto a las operaciones aritmticas ya es dependiendo de su composicin y tambin del tipo de imgenes que se quieren combinar, dentro de cada figura el ultimo grafico que se presenta son las operaciones booleanas ya pueden ser and, or o xor dependiendo de los parmetros que se hayan elegido cambiara cada una de ellas. En la fig. 5 utilizamos la operacin and entre las dos imgenes, podemos observar que al combinarlas la imagen torna a ser ms oscura, para la fig. 6 se utiliz la operacin or donde la grfica tiene un poco ms de nitidez y de contraste, poco brillo, en cuanto a la grfica anterior. En la figura 7 se utiliz la xor esta presenta mejor brillo poca definicin con respecto a las anteriores, ya depende del usuario necesita utilizar de acuerdo a lo que este requiera. En las figuras tambin se manejaron diferentes tipos de interpolacin, la cuales son vecino ms cercano, bilineal y bicubica, pero solo para el escalado, para rotar la imagen solo se tom en cuanto al vecino ms cercano. De acuerdo a cada uno de estos diferentes escalados para interpolar se puede obtener ya sea una figura ms definida o no. El recorte se hizo de forma interactiva, es decir el usuario por medio del cursor puede seleccionar el cuadrado o rectngulo que quiere recortar. VII. CONCLUSIONES Por medio de los histogramas se puede detallar que tan clara o tan oscura puede ser una imagen dependiendo a la distribucin del espectro, si su espectro se encuentra en la margen izquierda tendera

Figura 7. Anlisis completo para la imagen amor.jpg y la imagen atardecer.jpg

Figura 8. Anlisis completo para la imagen aurora.jpg y la imagen amor.jpg

Figura 9. Anlisis completo para la imagen atardecer.jpg y la imagen amor.jpg

UNIVERSIDAD DEL QUINDIO, INGENIERA ELECTRNICA. PROCESAMIENTO DIGITAL DE IMGENES.

a ser oscura, y si de lo contrario se encuentra en la parte derecha tendera ser ms clara. Al realizar las diferentes operaciones, ya sean aritmticas o booleanas se debe tener en cuenta los niveles de saturacin, para que la imagen no sobrepase estos lmites y se dae, ya que se tornara muy oscura o muy clara en las cuales no se observara nada de la imagen. Gracias a la herramienta matlab se pueden realizar anlisis y modificaciones importantes a las imgenes, siendo una herramienta de gran ayuda para este curso de procesamiento digital de imgenes Sea cual sea la operacin que se realice entre imgenes se aprecia un cambio notorio en el histograma de las imgenes, ya que puede ocurrir un ensanchamiento, reduccin o ampliacin de la distribucin del histograma resultante en un factor x para las operaciones globales o una relacin de pixel a pixel. Gracias a los histogramas podemos observar si una operacin aritmtica est bien realizada ya que en el histograma se puede analizar cmo se presenta un corrimiento. Con la multiplicacin entre imgenes podemos apreciar como el espectro de la imagen se ensancha. Con la suma o resta se puede apreciar como el histograma solo se mueve a la derecha o izquierda sin presentar ninguna otra modificacin.

REFERENCIAS BIBLIOGRFICAS [1]. Disponible en la pgina web: http://es.wikipedia.org/wiki/Procesamiento_digital_de_im%C 3%A1genes Fecha de la consulta: 9 de marzo de 2014. [2]. Disponible en la pgina web: http://bibliotecadigital.ilce.edu.mx/sites/ciencia/volumen2/cie ncia3/084/htm/sec_9.htm Fecha de la consulta: 9 de marzo de 2014. [3]. Disponible en la pgina web: http://www.dspace.espol.edu.ec/bitstream/123456789/10740/ 14/Manejo%20basico%20de%20imagenes_matlab.pdf. Fecha de consulta: 9 de marzo de 2014. [4]. Disponible en la pgina web: http://www.dspace.espol.edu.ec/bitstream/123456789/10740/ 14/Manejo%20basico%20de%20imagenes_matlab.pdf. Fecha de consulta 9 de marzo de 2014. [5]. Disponible en la pgina web: http://www4.ujaen.es/~satorres/practicas/practica1.pdf. Fecha de consulta 9 de marzo de 2014. [6]. Disponible en la pgina web: http://www.santalices.net/cuadernos/histograma/histograma.h tm 9 de marzo de 2014.

S-ar putea să vă placă și