Você está na página 1de 22

VISIN ARTIFICIAL USANDO MATLAB Parte 1

Alvaro Romero Acero alromeroac@unal.edu.co Alejandro Marn Cano amarincan@unal.edu.co

Profesor Jovani A. Jimnez

Universidad Nacional de Colombia Facultad de minas Ingeniera de Control Medelln 2012

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

VISIN ARTIFICIAL USANDO MATLAB Parte 1

Figura 1 Imagen (foto1) RGB, capturada en Matlab.

Introduccin
Al realizar tareas especificas cada vez ms complejas, un robot al igual que un ser humano necesitan una mejor percepcin del entorno de trabajo, por lo tanto, la visin se hace indispensable para lograr una respuesta flexible, rpida y precisa, de acuerdo, al cambio constante del comportamiento externo del rea de trabajo. Cuando una persona, tiene como tarea la seleccin de objetos o piezas, debe realizar una secuencia de pasos para lograr una tarea exitosa, de la misma manera, un robot debe tener en cuenta esta secuencia, para lograr tal xito. Por consiguiente, en un robot la visin artificial juega un papel importante, en la realizacin exitosa de una tarea de clasificacin de objetos. En una determinada rea de trabajo, estos ojos artificiales sern previstos por una cmara web y el procesamiento inteligente de la imagen se har a travs del toolbox Image Acquisition Tool de Matlab, para as obtener una percepcin aceptada del entono. De esta manera, para alcanzar una adecuada aplicacin de esta herramienta de Matlab, se realizar un estudio sobre las funciones que provee el toolbox Image Acquisition Tool, y la descripcin del procesamiento de la imagen, con el fin de obtener los mejores resultados en la seleccin de objetos, ubicacin y que logren un reconocimiento de la imagen, la cual defina una caracterstica distinguida, frente a los dems objetos. En consecuencia, este resultado obtenido en la visin artificial, se enlazar con un electro-mecanismo (brazo robtico), el cual, ejecutar una accin prevista por el usuario en su programacin de tareas. Esta propuesta va enfocada, al reconocimiento y clasificacin de objetos, que logren una identificacin precisa sobre la imagen, para una tarea especfica, luego ejecutada por el robot, que proporcione una alternativa de solucin, en aplicaciones industriales como la clasificacin de piezas y armado de otros componentes.

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

Conceptos bsicos
Matriz de imagen: La matriz de imagen I(x,y) (escala de grises), hace referencia a la forma en que Matlab guarda y procesa una imagen, en forma de matriz como vectores bidimensionales (m,n), donde cada elemento de la matriz es un pixel, a su vez el toolbox de procesamiento de imagen soporta imgenes binarias, indexadas, de intensidad y RGB, que tambin tienen forma matricial, por ejemplo para la imagen RGB, es una tridimensional y se representa (m,n,N), donde (m,n) son los parmetros de los vectores bidimensionales y (N) es el parmetro de RGB, es decir corresponde al color rojo, verde o azul tomando valores entre (1, 2 ,3) respectivamente, es decir cada pixel contiene una informacin adicional RGB. A continuacin, se representa la forma matricial de una imagen digital (m,n) a escala de grises.

Figura 2 Representacin de la matriz de imagen (foto1) en grises. ImagenGrisVisionArtificial.m


% % % % Genera una matriz I(x,y), de la Imagen original que se encuentra en los anexos imagen (foto1), matriz con tamao de 1920 x 2560 unit8, es decir con 4.915.200 pixeles (4.9 Megapxeles) con valores de cada pixel entre 0 y 255, donde cero (0) es el color negro y (255) el color blanco.

clear all, close all, clc foto1 = imread('C:\Users\alvaro\Desktop\foto1.jpg'); figure(1), subplot(2,1,1) imshow(foto1); title({'\color[rgb]{1 0 0}VISIN \color[rgb]{0 1 0}ARTIFICIAL \color[rgb]{0 0 1}Usando Matlab';'\color[rgb]{0 0 0}ImagenGrisVisionArtificial.m'; '\color[rgb]{0 0 1}IMAGEN ORIGINAL'}) GRIS=rgb2gray(foto1); subplot(2,1,2) imshow(GRIS); title({'\color[rgb]{0 0 1}IMAGEN ESCALA DE GRISES'})

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

Pixel: Se denomina como la unidad de color homognea ms pequea de una imagen digital, en las tres figuras a continuacin, representan una imagen digital en Matlab, de izquierda a derecha vemos, un acercamiento a la imagen hasta llegar a apreciar los pixeles, que en este caso en la figura de la parte derecha, se pueden observar seis (6) pixeles, donde cada pixel contiene un color homogneo, cuando se trabaja con imgenes digital RGB, cada pixel es la combinacin de tres colores rojo, verde y azul, la cantidad de combinaciones que cada pixel puede alcanzar, dependen del tipo de dato en que se codifique el pixel, por ejemplo un pixel codificado en un byte (8 bit) que corresponden a 256 variaciones de color para cada pixel, que el RGB se traduce a 224 (16.777.216) variaciones de color para cada pixel, porque en RGB intervienen tres colores (256*256*256 = 16.777.216). Pixel

ZOOM

Figura 3 Representacin de un pixel, imagen (foto1). Despus de adquirir algunos conceptos bsicos, sobre visin artificial usando Matlab, surge el interrogante porque usar Matlab, la respuesta consiste que al usar Matlab especficamente el toolbox para procesamiento de imgenes, se tiene la ventaja sobre el paquete de funciones predeterminadas con que cuenta Matlab en base a vectores y matrices, pues una caracterstica fundamental de trabajar con imgenes, es que esta se puede manejar como una matriz o como un conjunto de matrices en el caso de una imagen RGB, entre otro tipo de imgenes. Por lo tanto, es posible aprovechar el recurso matemtico e interfaz que proporciona Matlab y de esta forma mejorar la velocidad del procesamiento de la imagen, obteniendo resultados ms rpidos y precisos sobre la informacin que se desee sacar de la imagen, como; el permetro, forma, ubicacin, tamao, color, centroide, frontera, contrastes, etc., que sern de gran utilidad en el momento de realizar un reconocimiento de objetos y posteriormente enlazarlo con un robot. Otra alternativa, es por medio de Lab VIEW, que tambin presenta una facilidad de interfaz a la hora del procesamiento de imgenes.

Comandos tiles para obtener informacin y manipulacin de la imagen.


Comandos1VisionArtificial.m
% Si se desea importar una imagen que est en el PC a Matlab, se realiza % por medio del comando imread('direccin'), por ejemplo la imagen I.jpg % que est en el escritorio:

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

I = imread('C:\Users\alvaro\Desktop\I.jpg'); figure(2),imshow(I) title({'\color[rgb]{0 0 1}IMAGEN EN TAMAO REAL'}) figure(3),subplot(3,1,1),imshow(I) title({'\color[rgb]{1 0 0}VISIN \color[rgb]{0 1 0}ARTIFICIAL \color[rgb]{0 0 1}Usando Matlab';'\color[rgb]{0 0 0}Comandos1VisionArtificial.m'; '\color[rgb]{0 0 1}IMAGEN ORIGINAL'}) fprintf('%s%\n', 'VISIN ARTIFICIAL Usando Matlab Comandos1VisionArtificial') fprintf('\n') % Obtiene la dimensin de la imagen (alto, ancho, band), el % tercer parmetro (band) se refiere a:(1) imagen gris y (3) imagen a % color. fprintf('\n') fprintf('%s%\n', ' Dimensin de la imagen (alto, ancho, band), band=1 gris, band=3 color: ') fprintf('\n') size(I) % Obtiene informacin de la imagen dimensin y tipo de dato. fprintf('\n') fprintf('%s%\n', ' Informacin de la imagen dimensin y tipo de dato: ') fprintf('\n') whos I % Obtiene informacin detallada de la imagen. fprintf('\n') fprintf('%s%\n', ' Informacin de la imagen dimensin y tipo de dato ') fprintf('\n') imfinfo('C:\Users\alvaro\Desktop\I.jpg') % Obtiene una rotacin de la imagen, con la siguiente funcin % imrotate(Imagen, Angulo, mtodo, BBOX). rota= imrotate(I,30,'bilinear','crop'); subplot(3,1,2),imshow(rota) title({'\color[rgb]{0 0 1}ROTACIN DE LA IMAGEN'}) % Recortar la imagen, con la funcin imcrop(Imagen,[X1,Y1,ancho,alto]); reco= imcrop(I,[20,30,200,100]); subplot(3,1,3),imshow(reco) title({'\color[rgb]{0 0 1}RECORTE DE LA IMAGEN'}) % Con esta funcin imresize(I,zoom), lo que haces es tener un zoom de la % imagen, por ejemplo: si zoom<1 la imagen se reduce, si zoom>1 la imagen % aumenta. zoom = imresize(I,2); figure(4),imshow(zoom) title({'\color[rgb]{0 0 1}ZOOM DE LA IMAGEN'})

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

Figura 4 Resultados comandos de Matlab, cdigo Comandos1VisionArtificial.m

Figura 5 a) Imagen original, b) Rotacin de la imagen a 30o, c) Recorte de la imagen

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

Figura 6 Imagen en tamao real

Figura 7 Zoom de la imagen al 100% de la figura 5.

Grupo de Investigacin - Inteligencia Artificial en Educacin Tipo de imgenes en toolbox Matlab Imagen RGB

Visin Artificial Matlab Parte 1

La imagen RGB, llamada imagen verdadera, la cual, se usar como base para el procesamiento de la imagen, se representa con tres matrices de igual tamao y concuerdan con el tamao de la imagen, es decir, cada pixel se compone de la suma de tres intensidades de colores RGB.

Figura 8 Representacin matricial de una imagen RGB A continuacin, para entender un poco ms este tipo de imagen se ilustrar, la imagen RGB y sus componentes, rojo, verde y azul respectivamente en la Figura 9, generando una imagen con una caracterstica RGB en forma vertical, por medio de Matlab, de la cual se pueda visualizar separadamente los componentes mencionados, y mediante el procesamiento de la imagen R, G y B independientemente en una imagen representada en escala de grises, ceros (blancos) y unos (negros). Como resultado, se obtiene para el caso del color blanco, hace referencia al color ms intenso, ya sea, rojo, verde o azul de la imagen RGB, para lograr tal efecto, con el cdigo en Matlab que vern a continuacin, se logra apreciar dicha descripcin: Imagen RGB, en la escala de grises imagen R, imagen G e imagen B, en la figura (1). Por ejemplo en la Figura 9, se observa en la imagen RGB el rojo a la derecha, por consiguiente en la imagen red (R) se torna ms blanco la parte derecha, la cual corresponde al color rojo, de la misma manera acta para los colores verde (centro) y azul (izquierda).

Grupo de Investigacin - Inteligencia Artificial en Educacin Identificacin de imagen RGB por medio de escala de grises:
IdentificacionRGBVisionArtificial.m

Visin Artificial Matlab Parte 1

Figura 9 Identificacin de imagen RGB en grises


% Genera una matriz de imagen (RGB), con tramas verticales azul, verde y % roja, como se ve en la figura (1). RGB=reshape(ones(128,1)*reshape(jet(128),1,384),[128,128,3]); % Dibuja la imagen representada por la matriz (RGB). figure(5), subplot(4,1,1) imshow(RGB) % En el titulo se hace uso del comando \color[rgb]{r g b} para representar % colores en la gama RGB de los caracteres del ttulo, donde r=1 representa % el color rojo ms intenso y disminuye hasta cero, as sucesivamente para % g (verde) y b (azul). title({'VISIN ARTIFICIAL Usando Matlab';'IdentificacionRGBVisionArtificial.m';'IMAGEN \color[rgb]{1 0 0}R \color[rgb]{0 1 0}G \color[rgb]{0 0 1}B'}) % Genera una matriz, escala de grises, donde el tercer parmetro (1, 2 y 3) % representan R G y B respectivamente, al cual hace referencia al color ms % blanco de la imagen original (RBG, como se ve en la figura (1). R=RGB(:,:,1);

Grupo de Investigacin - Inteligencia Artificial en Educacin


G=RGB(:,:,2); B=RGB(:,:,3); subplot(4,1,2) imshow(R) title('IMAGEN \color[rgb]{1 0 0}RED (R)') subplot(4,1,3) imshow(G) title('IMAGEN \color[rgb]{0 1 0}GREEN (G)') subplot(4,1,4) imshow(B) title('IMAGEN \color[rgb]{0 0 1}BLUE (B)')

Visin Artificial Matlab Parte 1

Otro ejemplo, identificacin de imagen RGB por medio de escala de grises:


Identificacion2RGBVisionArtificial.m

Figura 10 Identificacin de circulo RGB en grises

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

CIRCULO = imread('C:\Users\alvaro\Desktop\CirculoRGB.jpg'); figure(6), subplot(4,1,1) imshow(CIRCULO) title({'VISIN ARTIFICIAL usando Matlab';'Identificacion2RGBVisionArtificial.m';'IMAGEN \color[rgb]{1 0 0}R \color[rgb]{0 1 0}G \color[rgb]{0 0 1}B'}) R=CIRCULO(:,:,1); G=CIRCULO(:,:,2); B=CIRCULO(:,:,3); subplot(4,1,2) imshow(R) title('IMAGEN \color[rgb]{1 0 0}RED (R)') subplot(4,1,3) imshow(G) title('IMAGEN \color[rgb]{0 1 0}GREEN (G)') subplot(4,1,4) imshow(B) title('IMAGEN \color[rgb]{0 0 1}BLUE (B)')

Imagen BINARIA En este tipo de imgenes, cada pixel toma un valor de dos valores posibles ceros 0 (negro) unos 1 (blanco), y se representan en Matlab por una matriz bidimensional con datos lgicos. Se puede obtener una imagen binaria y a su vez la negacin de esta, ver Figura 11. Una imagen binaria, puede ser considerada como un tipo especial de imagen de intensidad, compuesta solamente por blanco y negro. Ejemplo de una matriz, que representa una imagen binaria:

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

Correcin de detalles

Zoom

Figura 11 a) Imagen original, b) Imagen binaria 1, c) Imagen binaria 2 d) Imagen binaria 3 ImagenbinariaVisionArtificial.m
fprintf('%s%\n', 'VISIN ARTIFICIAL Usando Matlab ImagenbinariaVisionArtificial.m') fprintf('\n') I = imread('C:\Users\alvaro\Desktop\I.jpg'); figure(7),subplot(4,1,1) imshow(I) title({'\color[rgb]{0 0 1}VISIN ARTIFICIAL usando Matlab';' \color[rgb]{0 0 0}ImagenbinariaVisionArtificial.m'; 'IMAGEN ORIGINAL'}) % Esta funcin graythresh retorna un valor normalizado entre 0 y 1 que % corresponde al mejor umbral (umb), lo cual, nos ayuda a obtener un umbral % ptimo y binarizar adecuadamente una imagen, mediante la funcin(im2bw). umb=graythresh(I); im_bin=im2bw(I,umb); subplot(4,1,2) imshow(im_bin) title({'IMAGEN BINARIA 1'})

Grupo de Investigacin - Inteligencia Artificial en Educacin


% Se obtiene la imagen binaria inversa a im_bin im_bin2=not(im_bin); subplot(4,1,3) imshow(im_bin2) title({'IMAGEN BINARIA 2'})

Visin Artificial Matlab Parte 1

% Con la funcin imfill(Imagen,'holes'), limpia las partes internas % blancas de los objetos (correccin en detalles). subplot(4,1,4) fill=imfill(im_bin2,'holes'); % Limpiamos los agujeros imshow(fill) title({'IMAGEN BINARIA 3'; 'Objeto interior limpio'})

Imagen INDEXADA Una imagen indexada, consiste en guardar una imagen como dos matrices, donde la primera matriz tiene el mismo tamao que la imagen y un nmero para cada pxel y la segunda matriz se conoce como Mapa de Color, funcin en Matlab (Colormap) y su tamao puede diferir del de la imagen, ejemplo de la imagen INDEXADA Figura 12.

Figura 12 a) Imagen W (9 pixeles) b) Imagen INDEXADA por mapa de colores RGB. ImagenIndexadaVisionArtificial.m
% Se crea una matriz 3x3, W=[a b c; d e f; g h i], donde a,b,c son los % parmetros de la primera fila de la imagen W. Es como si se tuvieran % nueve (9) pixeles. W=[1 2 3; 2 3 1; 3 1 2]; figure(8) image(W) title({'VISIN ARTIFICIAL Usando Matlab';'ImagenIndexadaVisionArtificial.m'; 'IMAGEN W'})

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

% % % % % %

Se crea una matriz 3x3, mapa=[A B C; D E F; G H I], donde A,B,C son los parmetros correspondientes al color R, as sucesivamente para el color G y B, estos colores varan segn la combinacin RGB que cada uno trae, es decir, cada uno de los nueve (9) pixeles se compone de una gama de tres colores RGB, en intensidades entre 0 y 1, que la funcin colormap genera.

figure(9) image(W) title({'IMAGEN W (mapa de colores)'}) mapa = [1 0 0; 0 1 0; 0 0 1]; colormap(mapa)

Otro ejemplo, crear una imagen INDEXADA a partir de una imagen RGB
ImagenIndexada2VisionArtificial.m

Figura 13 Imagen INDEXADA al 0.1, 0.15 y 0.25 a escala de grises

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

RGB = imread('C:\Users\alvaro\Desktop\I.jpg'); figure(10), subplot(4,1,1) imshow(RGB) title({'VISIN ARTIFICIAL Usando Matlab';'ImagenIndexada2VisionArtificial.m'; 'IMAGEN ORIGINAL'}) subplot(4,1,2) ind1=rgb2ind(RGB,0.1); imshow(ind1) title({'IMAGEN INDEXADA al 0.1'}) subplot(4,1,3) ind2=rgb2ind(RGB,0.15); imshow(ind2) title({'IMAGEN INDEXADA al 0.15'}) subplot(4,1,4) ind3=rgb2ind(RGB,0.25); imshow(ind3) title({'IMAGEN INDEXADA al 0.25'})

Imagen INTENSIDAD Una imagen de intensidad, se representa por una matriz nica, cuyos elementos son los pxeles de la imagen, estos elementos de la matriz de intensidad representan varias intensidades, o niveles de gris, donde la intensidad cero (0) corresponde al color negro y la intensidad uno (1) al blanco. En la Figura 14 vemos una imagen INTENSIDAD a partir de una imagen RGB.

Figura 14 Imagen Intensidad a partir de imagen RGB.

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

RGB = imread('C:\Users\alvaro\Desktop\I.jpg'); figure(11), subplot(2,1,1) imshow(RGB) title({'VISIN ARTIFICIAL Usando Matlab';'ImagenIntensidadVisionArtificial.m'; 'IMAGEN ORIGINAL'}) subplot(2,1,2) ind1=rgb2gray(RGB); imshow(ind1) title({'IMAGEN INTENSIDAD'})

Conversin de imgenes en Matlab

Tabla 1 Conversin de imgenes en Matlab

Tipos de datos de la matriz


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). SINGLE Nmero en punto flotante de precisin simple, con valores aproximadamente en el rango de -1038 a 1038 (4 bytes por elemento).

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

CHAR Carcteres (2 byte por elemento). LOGICAL Los valores son 0 1 (1 bit por elemento).

Tabla 2 Conversin de tipo de datos en Matlab

BIBLIOGRAFA
[1] R. C. Gonzlez, R. E. Woods; Digital image processing; Addison-Wesley, 2007. [2] K. S. Fu, R. C. Gonzlez, C. S. G. Lee. ROBTICA: Control, deteccin, visin e inteligencia. McGraw-Hill. 1988. Pg. 306-490. [3] R. C. Gonzlez, R. E. Woods, S. L. Eddins; Digital image processing using MATLAB; Prentice Hall, 2004.
[4] http://upcommons.upc.edu/pfc/bitstream/2099.1/9685/4/03_Mem%C3%B2ria.pdf

[5] http://www.slideshare.net/lonely113/procesamiento-digital-de-imgenes-con-matlab [6] http://www.mathworks.com/help/toolbox/imaq/imaqhwinfo.html

Grupo de Investigacin - Inteligencia Artificial en Educacin ANEXOS


Imagen (foto1)

Visin Artificial Matlab Parte 1

Imagen (I)

Imagen (CirculoRGB)

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

%% % VISIN ARTIFICIAL USANDO MATLAB - Parte 1 - CONCEPTOS BSICOS %% %ImagenGrisVisionArtificial.m % Genera una matriz I(x,y), de la Imagen original que se encuentra en los % anexos imagen (foto1), matriz con tamao de 1920 x 2560 unit8, es decir % con 4.915.200 pixeles (4.9 Megapxeles) con valores de cada pixel entre % 0 y 255, donde cero (0) es el color negro y (255) el color blanco. clear all, close all, clc foto1 = imread('C:\Users\alvaro\Desktop\foto1.jpg'); figure(1), subplot(2,1,1) imshow(foto1); title({'\color[rgb]{1 0 0}VISIN \color[rgb]{0 1 0}ARTIFICIAL \color[rgb]{0 0 1}Usando Matlab';'\color[rgb]{0 0 0}ImagenGrisVisionArtificial.m'; '\color[rgb]{0 0 1}IMAGEN ORIGINAL'}) GRIS=rgb2gray(foto1); subplot(2,1,2) imshow(GRIS); title({'\color[rgb]{0 0 1}IMAGEN ESCALA DE GRISES'}) %% % Comandos1VisionArtificial.m % Si se desea importar una imagen que est en el PC a Matlab, se realiza % por medio del comando imread('direccin'), por ejemplo la imagen I.jpg % que est en el escritorio: I = imread('C:\Users\alvaro\Desktop\I.jpg'); figure(2),imshow(I) title({'\color[rgb]{0 0 1}IMAGEN EN TAMAO REAL'}) figure(3),subplot(3,1,1),imshow(I) title({'\color[rgb]{1 0 0}VISIN \color[rgb]{0 1 0}ARTIFICIAL \color[rgb]{0 0 1}Usando Matlab';'\color[rgb]{0 0 0}Comandos1VisionArtificial.m'; '\color[rgb]{0 0 1}IMAGEN ORIGINAL'}) fprintf('%s%\n', 'VISIN ARTIFICIAL Usando Matlab Comandos1VisionArtificial') fprintf('\n') % Obtiene la dimensin de la imagen (alto, ancho, band), el % tercer parmetro (band) se refiere a:(1) imagen gris y (3) imagen a % color. fprintf('\n') fprintf('%s%\n', ' Dimensin de la imagen (alto, ancho, band), band=1 gris, band=3 color: ') fprintf('\n') size(I) % Obtiene informacin de la imagen dimensin y tipo de dato. fprintf('\n') fprintf('%s%\n', ' Informacin de la imagen dimensin y tipo de dato: ') fprintf('\n') whos I % Obtiene informacin detallada de la imagen. fprintf('\n')

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

fprintf('%s%\n', ' Informacin de la imagen dimensin y tipo de dato ') fprintf('\n') imfinfo('C:\Users\alvaro\Desktop\I.jpg') % Obtiene una rotacin de la imagen, con la siguiente funcin % imrotate(Imagen, Angulo, mtodo, BBOX). rota= imrotate(I,30,'bilinear','crop'); subplot(3,1,2),imshow(rota) title({'\color[rgb]{0 0 1}ROTACIN DE LA IMAGEN'}) % Recortar la imagen, con la funcin imcrop(Imagen,[X1,Y1,ancho,alto]); reco= imcrop(I,[20,30,200,100]); subplot(3,1,3),imshow(reco) title({'\color[rgb]{0 0 1}RECORTE DE LA IMAGEN'}) % Con esta funcin imresize(I,zoom), lo que haces es tener un zoom de la % imagen, por ejemplo: si zoom<1 la imagen se reduce, si zoom>1 la imagen % aumenta. zoom = imresize(I,2); figure(4),imshow(zoom) title({'\color[rgb]{0 0 1}ZOOM DE LA IMAGEN'}) %% % Genera una matriz de imagen (RGB), con tramas verticales azul, verde y % roja. RGB=reshape(ones(128,1)*reshape(jet(128),1,384),[128,128,3]); % Dibuja la imagen representada por la matriz (RGB). figure(5), subplot(4,1,1) imshow(RGB) % En el titulo se hace uso del comando \color[rgb]{r g b} para representar % colores en la gama RGB de los caracteres del ttulo, donde r=1 representa % el color rojo ms intenso y disminuye hasta cero, as sucesivamente para % g (verde) y b (azul). title({'VISIN ARTIFICIAL Usando Matlab';'IdentificacionRGBVisionArtificial.m';'IMAGEN \color[rgb]{1 0 0}R \color[rgb]{0 1 0}G \color[rgb]{0 0 1}B'}) % Genera una matriz, escala de grises, donde el tercer parmetro (1, 2 y 3) % representan R G y B respectivamente, al cual hace referencia al color ms % blanco de la imagen original (RBG, como se ve en la figura (1). R=RGB(:,:,1); G=RGB(:,:,2); B=RGB(:,:,3); subplot(4,1,2) imshow(R) title('IMAGEN \color[rgb]{1 0 0}RED (R)') subplot(4,1,3) imshow(G) title('IMAGEN \color[rgb]{0 1 0}GREEN (G)') subplot(4,1,4) imshow(B) title('IMAGEN \color[rgb]{0 0 1}BLUE (B)')

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

%% % Genera una matriz de imagen (RGB) CIRCULO azul, verde y % roja. CIRCULO = imread('C:\Users\alvaro\Desktop\CirculoRGB.jpg'); figure(6), subplot(4,1,1) imshow(CIRCULO) title({'VISIN ARTIFICIAL usando Matlab';'Identificacion2RGBVisionArtificial.m';'IMAGEN \color[rgb]{1 0 0}R \color[rgb]{0 1 0}G \color[rgb]{0 0 1}B'}) R=CIRCULO(:,:,1); G=CIRCULO(:,:,2); B=CIRCULO(:,:,3); subplot(4,1,2) imshow(R) title('IMAGEN \color[rgb]{1 0 0}RED (R)') subplot(4,1,3) imshow(G) title('IMAGEN \color[rgb]{0 1 0}GREEN (G)') subplot(4,1,4) imshow(B) title('IMAGEN \color[rgb]{0 0 1}BLUE (B)') %% %ImagenbinariaVisionArtificial.m fprintf('%s%\n', 'VISIN ARTIFICIAL Usando Matlab ImagenbinariaVisionArtificial.m') fprintf('\n') I = imread('C:\Users\alvaro\Desktop\I.jpg'); figure(7),subplot(4,1,1) imshow(I) title({'\color[rgb]{0 0 1}VISIN ARTIFICIAL usando Matlab';' \color[rgb]{0 0 0}ImagenbinariaVisionArtificial.m'; 'IMAGEN ORIGINAL'}) % Esta funcin graythresh retorna un valor normalizado entre 0 y 1 que % corresponde al mejor umbral (umb), lo cual, nos ayuda a obtener un umbral % ptimo y binarizar adecuadamente una imagen, mediante la funcin(im2bw). umb=graythresh(I); im_bin=im2bw(I,umb); subplot(4,1,2) imshow(im_bin) title({'IMAGEN BINARIA 1'}) % Se obtiene la imagen binaria inversa a im_bin im_bin2=not(im_bin); subplot(4,1,3) imshow(im_bin2) title({'IMAGEN BINARIA 2'}) % Con la funcin imfill(Imagen,'holes'), limpia las partes internas % blancas de los objetos (correccin en detalles). subplot(4,1,4) fill=imfill(im_bin2,'holes'); % Limpiamos los agujeros imshow(fill) title({'IMAGEN BINARIA 3'; 'Objeto interior limpio'})

Grupo de Investigacin - Inteligencia Artificial en Educacin

Visin Artificial Matlab Parte 1

%% % ImagenIndexadaVisionArtificial.m % Se crea una matriz 3x3, W=[a b c; d e f; g h i], donde a,b,c son los % parmetros de la primera fila de la imagen W. Es como si se tuvieran % nueve (9) pixeles. W=[1 2 3; 2 3 1; 3 1 2]; figure(8) image(W) title({'VISIN ARTIFICIAL Usando Matlab';'ImagenIndexadaVisionArtificial.m'; 'IMAGEN W'}) % Se crea una matriz 3x3, mapa=[A B C; D E F; G H I], donde A,B,C son los % parmetros correspondientes al color R, as sucesivamente para el color % G y B, estos colores varan segn la combinacin RGB que cada uno trae, % es decir, cada uno de los nueve (9) pixeles se compone de una gama de % tres colores RGB, en intensidades entre 0 y 1, que la funcin colormap % genera. figure(9) image(W) title({'IMAGEN W (mapa de colores)'}) mapa = [1 0 0; 0 1 0; 0 0 1]; colormap(mapa) %% % ImagenIndexada2VisionArtificial.m RGB = imread('C:\Users\alvaro\Desktop\I.jpg'); figure(10), subplot(4,1,1) imshow(RGB) title({'VISIN ARTIFICIAL Usando Matlab';'ImagenIndexada2VisionArtificial.m'; 'IMAGEN ORIGINAL'}) subplot(4,1,2) ind1=rgb2ind(RGB,0.1); imshow(ind1) title({'IMAGEN INDEXADA al 0.1'}) subplot(4,1,3) ind2=rgb2ind(RGB,0.15); imshow(ind2) title({'IMAGEN INDEXADA al 0.15'}) subplot(4,1,4) ind3=rgb2ind(RGB,0.25); imshow(ind3) title({'IMAGEN INDEXADA al 0.25'}) %% % magenIntensidadVisionArtificial.m RGB = imread('C:\Users\alvaro\Desktop\I.jpg'); figure(11), subplot(2,1,1) imshow(RGB) title({'VISIN ARTIFICIAL Usando Matlab';'ImagenIntensidadVisionArtificial.m'; 'IMAGEN ORIGINAL'}) subplot(2,1,2) ind1=rgb2gray(RGB); imshow(ind1) title({'IMAGEN INTENSIDAD'})

Você também pode gostar