Vous êtes sur la page 1sur 8

UNIVERSIDAD NACIONAL DE SAN AGUSTIN

Facultad de Ingeniera de Produccin y


Servicios
Escuela Profesional De Ingeniera Electrnica

CURSO

: LABORATORIO DE PROCESAMIENTO
DIGITAL DE IMGENES

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
20104246

: JOHN CRUZ CHECA


ALAN MAMANI QUISPE
20102423

Arequipa 2014

CUI:
CUI:

Contenido
1.

OBJETIVOS.............................................................................................................. 2

2.

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

3.

PROCEDIMIENTO.................................................................................................... 2
3.1.

Introduccin..................................................................................................... 2

3.2.

Obtencin de la imagen................................................................................... 2

3.3.

Procesamiento de imgenes............................................................................ 4

4.

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

5.

CONCLUSIONES...................................................................................................... 6

6.

OBSERVACIONES.................................................................................................... 7

1. OBJETIVOS
-

Generar una imagen real a partir de equipos de visin


Realizar el procesamiento de las imgenes para recuperar caractersticas
visuales
Encontrar los ejes dominantes de una pieza en base a momentos en la
imagen

2. CONOCIMIENTOS PREVIOS
-

Cul es el hardware necesario para realizar aplicaciones de visin por


computadora?
Qu software es necesario para realizar aplicaciones de visin?
Qu algoritmos existen para detectar el centro de gravedad, el permetro
y el rea de objetos presentes en la imagen?
Qu algoritmos existen para realizar el reconocimiento de diferentes
objetos en una misma imagen?
Cules son las expresiones matemticas de los momentos y momentos
centrales de la imagen?

3. PROCEDIMIENTO
3.1. Introduccin
El procesamiento de imgenes es una etapa intermedia dentro de una
aplicacin de visin por computador, antes se debe obtener la imagen. Para
una aplicacin en particular, el tiempo de procesado y obtencin de la
imagen debe ser menor que el tiempo de ciclo de control. En esta prctica
no se tomara en cuenta estos tiempos, pues estas dos etapas se realizaran
fuera de lnea.

3.2. Obtencin de la imagen


a) Verificamos que el equipo de visin (tarjeta de adquisicin de
imgenes), cmara y software (Matlab), funciones correctamente, para
eso usamos los siguientes comandos en Matlab:
>> Info=imaqhwinfo
info =
InstalledAdaptors: {'winvideo'}
MATLABVersion: '8.3 (R2014a)'
ToolboxName: 'Image Acquisition Toolbox'
ToolboxVersion: '4.7 (R2014a)'
Como podemos ver el adaptador de la cmara de video est
correctamente instalada con el nombre de WINVIDEO, usando el tool
box 'Image Acquisition Toolbox'.

Ya con el nombre del adaptador podemos sabes cuantos dispositivos de


adquisicin de imgenes estn conectada a nuestra PC con el siguiente
comando:
>>info=imaqhwinfo('winvideo')
info =
AdaptorDllName:
'C:\MATLAB\SupportPackages\R2014a\genericvideo\a
daptor\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 adquisicin de imgenes y cuantos dispositivos hay en
mi caso hay tres dispositivos instalados en mi PC.
Con el siguiente comando veremos en que formato trabaja la cmara y a
cuantos pixeles
>>info.DeviceInfo.SupportedFormats
ans =
'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 estndares de video que soportan
de los tres dispositivos de adquisicin de imgenes que estn
conectados, los cuales son importantes para la adquisicin de imgenes
como veremos ms adelante.
Como ya sabes los datos de la cmara nos disponemos a capturar una
imagen.

3.3. Procesamiento de imgenes


De la imagen tomada desde el dispositivo de adquisicin de imgenes, por
manipulacin de pixeles de la imagen, obtenemos el centro de gravedad y
el ngulo de posicionamiento del objeto.
Momento de orden pq:
M

M pq= x y I (x , y )
p

x=1 y=1

Momento de orden 01:


M

M 01= x 0 y 1 I (x , y)
x=1 y=1

Momento de orden 10:


M

M 10= x y I (x , y)
1

x=1 y=1

Momento de orden 01:


M

M 00= x 0 y 0 I ( x , y )
x=1 y=1

Centro de gravedad (Cx, Cy):

C x=

C y=

M 10
M 00

M 01
M 00

4. PROGRAMA EN MATLAB
close all
clear all
clc

info=imaqhwinfo
info=imaqhwinfo('winvideo')
info.DeviceInfo
info.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
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 guardada
imshow(I);% la mostramos
umbral=graythresh(foto); % determina un umbral y resta la imagen
bw=im2bw(foto,umbral);
% convierte la imagen a una forma binaria
%bw=1-bw;
s=strel('disk',1); % elemento estructural de radio 5
bw=imopen(bw,s); % operacion morfologica de apertura
figure, 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
end
end
figure, imshow(bw)
s=strel('disk',5); % elemento estructural de radio 5
bw=imopen(bw,s); % operacion morfologica de apertura
figure, 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

end

end
cx=M10/M00;
cy=M01/M00;
disp(cx);
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 on
plot(cx,cy,'rs');
%eje mayor
l=sqrt((u20+u02+sqrt(((u20-u02)^2)+(4*u11^2)))/(u00/2))
%eje menor
w=sqrt((u20+u02-sqrt(((u20-u02)^2)+(4*u11^2)))/(u00/2))
%orientcion eje mayor
th=0.5*atan2(2*u11,(u20-u02))% atan arco tangente en cuatro cuadrantes
% coordenadas eje mayor
p1=[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 menor
p3=[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 puntos
disp(th*180/pi)% vemos el angulo de inclinacion

5. CONCLUSIONES
-

Generamos una imagen mediante un dispositivo de adquisicin de


imgenes el cual nos ayuda a procesar imgenes para saber sus
caractersticas, tambin podemos modificar los parmetros de la cmara
mediante MATLAB.

Encontramos el ngulo de inclinacin 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 cmara el MATLAB pues se tiene que instalar un
controlador y que el MATLAB 2014 no cuenta con esa librera, en las
anteriores versiones ya venan, esa librera se descarga gratis desde el
mismo MATLAB
Para hacer un buen procesamiento de imgenes se tiene que ver que la
cmara mayores estndares de video, ya que las imgenes pueden variar.
Tambin se debe tener en cuenta la iluminacin del ambiente, este
parmetro es muy importante