Practica 4 PDI

9
UNIVERSIDAD NACIONAL DE SAN AGUSTIN Facultad de Ingeniería de Producción y Servicios Escuela Profesional De Ingeniería Electrónica CURSO : LABORATORIO DE PROCESAMIENTO DIGITAL DE IMÁGENES DOCENTE : ING. LIZARDO PARI PRACTICA : CUATRO TEMA : LECTURA DEL ANGULO DE UNA IMAGEN MEDIANTE UNA WEB CAM HORARIO : JUEVES 7 a 9 a.m. ESTUDIANTES : JOHN CRUZ CHECA CUI: 20104246

description

LABORATORIO UNSA PDI

Transcript of Practica 4 PDI

Page 1: Practica 4 PDI

UNIVERSIDAD NACIONAL DE SAN AGUSTIN

Facultad de Ingeniería de Producción y Servicios

Escuela Profesional De Ingeniería Electrónica

CURSO : LABORATORIO DE PROCESAMIENTO DIGITAL DE

IMÁGENES

DOCENTE : ING. LIZARDO PARI

PRACTICA : CUATRO

TEMA : LECTURA DEL ANGULO DE UNA IMAGEN MEDIANTE

UNA WEB CAM

HORARIO : JUEVES 7 a 9 a.m.

ESTUDIANTES : JOHN CRUZ CHECA CUI: 20104246ALAN MAMANI QUISPE CUI: 20102423

Arequipa 2014

Page 2: Practica 4 PDI

Contenido1. OBJETIVOS..............................................................................................................................................2

2. CONOCIMIENTOS PREVIOS....................................................................................................................2

3. PROCEDIMIENTO....................................................................................................................................2

3.1. Introducción...................................................................................................................................2

3.2. Obtención de la imagen.................................................................................................................2

3.3. Procesamiento de imágenes..........................................................................................................4

4. PROGRAMA EN MATLAB........................................................................................................................4

5. CONCLUSIONES......................................................................................................................................6

6. OBSERVACIONES....................................................................................................................................7

Page 3: Practica 4 PDI

1. OBJETIVOS- Generar una imagen real a partir de equipos de visión- Realizar el procesamiento de las imágenes para recuperar características visuales- Encontrar los ejes dominantes de una pieza en base a momentos en la imagen

2. CONOCIMIENTOS PREVIOS- ¿Cuál es el hardware necesario para realizar aplicaciones de visión por computadora?- ¿Qué software es necesario para realizar aplicaciones de visión?- ¿Qué algoritmos existen para detectar el centro de gravedad, el perímetro y el área de

objetos presentes en la imagen?- ¿Qué algoritmos existen para realizar el reconocimiento de diferentes objetos en una misma

imagen?- ¿Cuáles son las expresiones matemáticas de los momentos y momentos centrales de la

imagen?

3. PROCEDIMIENTO

3.1. IntroducciónEl procesamiento de imágenes es una etapa intermedia dentro de una aplicación de visión por computador, antes se debe obtener la imagen. Para una aplicación en particular, el tiempo de procesado y obtención de la imagen debe ser menor que el tiempo de ciclo de control. En esta práctica no se tomara en cuenta estos tiempos, pues estas dos etapas se realizaran fuera de línea.

3.2. Obtención de la imagena) Verificamos que el equipo de visión (tarjeta de adquisición de imágenes), cámara y

software (Matlab), funciones correctamente, para eso usamos los siguientes comandos en Matlab:

>> Info=imaqhwinfoinfo = InstalledAdaptors: {'winvideo'} MATLABVersion: '8.3 (R2014a)' ToolboxName: 'Image Acquisition Toolbox' ToolboxVersion: '4.7 (R2014a)'

Como podemos ver el adaptador de la cámara de video está correctamente instalada con el nombre de WINVIDEO, usando el tool box 'Image Acquisition Toolbox'.

Page 4: Practica 4 PDI

Ya con el nombre del adaptador podemos sabes cuantos dispositivos de adquisición de imágenes están conectada a nuestra PC con el siguiente comando:

>>info=imaqhwinfo('winvideo')

info = AdaptorDllName: 'C:\MATLAB\SupportPackages\R2014a\genericvideo\adaptor\win32\mwwinvideoimaq.dll'

AdaptorDllVersion: '4.7 (R2014a)' AdaptorName: 'winvideo' DeviceIDs: {[1] [2] [3]} DeviceInfo: [1x3 struct]

Como pode ver nos indica en donde está el controlador de los dispositivos de adquisición de imágenes y cuantos dispositivos hay en mi caso hay tres dispositivos instalados en mi PC.

Con el siguiente comando veremos en que formato trabaja la cámara y a cuantos pixeles

>>info.DeviceInfo.SupportedFormatsans = 'YUY2_160x120' 'YUY2_176x144' 'YUY2_320x240' 'YUY2_352x288' 'YUY2_640x480'ans = Columns 1 through 6 'MJPG_1280x720' 'MJPG_160x120' 'MJPG_176x144' 'MJPG_320x240' 'MJPG_352x288' 'MJPG_640x480' Columns 7 through 12 'YUY2_1280x720' 'YUY2_160x120' 'YUY2_176x144' 'YUY2_320x240' 'YUY2_352x288' 'YUY2_640x480'ans = 'RGB24_1280x720' 'RGB24_160x120' 'RGB24_176x144' 'RGB24_320x240' 'RGB24_352x288' 'RGB24_640x480'

Como podemos observar nos da tres estándares de video que soportan de los tres dispositivos de adquisición de imágenes que están conectados, los cuales son importantes para la adquisición de imágenes como veremos más adelante.

Como ya sabes los datos de la cámara nos disponemos a capturar una imagen.

3.3. Procesamiento de imágenesDe la imagen tomada desde el dispositivo de adquisición de imágenes, por manipulación de pixeles de la imagen, obtenemos el centro de gravedad y el ángulo de posicionamiento del objeto.

Momento de orden pq:

Page 5: Practica 4 PDI

M pq=∑x=1

M

∑y=1

N

x p yq I (x , y)

Momento de orden 01:

M 01=∑x=1

M

∑y=1

N

x0 y1 I (x , y )

Momento de orden 10:

M 10=∑x=1

M

∑y=1

N

x1 y0 I (x , y )

Momento de orden 01:

M 00=∑x=1

M

∑y=1

N

x0 y0 I (x , y)

Centro de gravedad (Cx, Cy):

C x=M 10

M 00

C y=M 01

M 00

4. PROGRAMA EN MATLAB

close allclear allclc info=imaqhwinfo info=imaqhwinfo('winvideo')info.DeviceInfoinfo.DeviceInfo.SupportedFormats%% en estas cuatro lineas anteriores como se explica en el informe son para comprobar que esta %% instalado los controladores de los diferentes dispositivos de adquisicion de imagenes correctamente%% y tambien saber los estadares de video que soportan. %imaqtool; % este comando es para ver un guide de matlab que tambien nos da%un previo de los formatos de la camara, y tambien tiene los comandos para%poner el RGB o escala de grises

Page 6: Practica 4 PDI

vid=videoinput('winvideo',1,'YUY2_640x480')% la camara con la que vamos a trabajar % es el dispositivo numero 1 y el cual le pusiomos el formato que % soporta YUY2 con 640x480 de resolucion preview(vid)% con este comando vemos un previo de hacia donde esta apuntando el % la camara como se muestra en el video foto=getsnapshot(vid);% con este comando adquirimos la imagen image(foto)% la mostramos la imagen adquirida imwrite(foto,'prueba.jpg');%aqui la guardamos la imagen en un fichero I=imread('prueba.jpg');% leemos la imagen guardadaimshow(I);% la mostramos umbral=graythresh(foto); % determina un umbral y resta la imagenbw=im2bw(foto,umbral); % convierte la imagen a una forma binaria%bw=1-bw;s=strel('disk',1); % elemento estructural de radio 5bw=imopen(bw,s); % operacion morfologica de aperturafigure, imshow(bw) [N M]= size(bw); for i=1:N for j=1:M if i<5 | i>(N-5) | j<5 | j>(M-5) bw(i,j)=0; end endend figure, imshow(bw) s=strel('disk',5); % elemento estructural de radio 5bw=imopen(bw,s); % operacion morfologica de aperturafigure, imshow(bw) % centro de gravedad M00=0;M10=0;M01=0; M20=0;M02=0;;M11=0;for i=1:N for j=1:M if(bw(i,j)==1) %(SI ES UNA IMAGEN BLANCA) M00=M00+1; % ENTONCES M10=M10+j; % SUMATORIA DE LOS MOMENTOS DE LA IMAGEN M01=M01+i; M20=M20+j*j; % VER LA ECUACION DE LOS MOMENNTOS CENTRALES DE ORDEN PQ M02=M02+i*i; M11=M11+i*j; end endend cx=M10/M00;cy=M01/M00;disp(cx);

Page 7: Practica 4 PDI

disp(cy);u00=M00; % ver ecuacion en copias de momentos centrales en forma resumida,u20=M20-cx*M10;% ver ecuacion en copias de momentos centrales en forma resumida,u02=M02-cy*M01;% ver ecuacion en copias de momentos centrales en forma resumida,u11=M11-cy*M10;% ver ecuacion en copias de momentos centrales en forma resumida,hold onplot(cx,cy,'rs'); %eje mayorl=sqrt((u20+u02+sqrt(((u20-u02)^2)+(4*u11^2)))/(u00/2))%eje menorw=sqrt((u20+u02-sqrt(((u20-u02)^2)+(4*u11^2)))/(u00/2))%orientcion eje mayorth=0.5*atan2(2*u11,(u20-u02))% atan arco tangente en cuatro cuadrantes % coordenadas eje mayorp1=[cx+0.5*l*cos(th) cy+0.5*l*sin(th)]; p2=[cx-0.5*l*cos(th) cy-0.5*l*sin(th)]; %coordenadas eje menorp3=[cx+0.5*w*sin(th) cy-0.5*w*cos(th)];p4=[cx-0.5*w*sin(th) cy+0.5*w*cos(th)];line([p1(1,1) p2(1,1)],[p1(1,2) p2(1,2)]); % une con una linea 2 puntos line([p3(1,1) p4(1,1)],[p3(1,2) p4(1,2)]); % une con una linea 2 puntosdisp(th*180/pi)% vemos el angulo de inclinacion

5. CONCLUSIONES- Generamos una imagen mediante un dispositivo de adquisición de imágenes el cual nos ayuda

a procesar imágenes para saber sus características, también podemos modificar los parámetros de la cámara mediante MATLAB.

- Encontramos el ángulo de inclinación y su centro de gravedad el cual en algunas aplicaciones son muy importantes ya que este procesamiento es en el instante.

- Encontramos los ejes dominantes de una pieza en base a momentos en la imagen.7

6. OBSERVACIONES- Para que nos reconozca la cámara el MATLAB pues se tiene que instalar un controlador y que

el MATLAB 2014 no cuenta con esa librería, en las anteriores versiones ya venían, esa librería se descarga gratis desde el mismo MATLAB

- Para hacer un buen procesamiento de imágenes se tiene que ver que la cámara mayores estándares de video, ya que las imágenes pueden variar.

Page 8: Practica 4 PDI

- También se debe tener en cuenta la iluminación del ambiente, este parámetro es muy importante