Sie sind auf Seite 1von 9

Instituto Politcnico Nacional

Unidad Profesional Interdisciplinaria en Ingeniera y Tecnologas Avanzadas

Visin Artificial

Contenido
Prctica 3
Obtencin de imgenes para procesamiento con Matlab
Determinar la trayectoria de un objeto mediante el centroide
Prctica 4
Aclarar u oscurecer imgenes con histograma
Obtencin del contorno de una figura

Marco Terico
La implementacin de algoritmos en visin por computador resulta muy costoso en tiempo ya que se requiere de la
manipulacin de punteros, gestin de memoria, etc. Hacerlo en lenguaje C++ (que por sus
caractersticas compartidas de alto y bajo nivel lo hacen el ms apropiado para la implementacin de
algoritmos de visin computacional) supondra la inversin de tiempo y sin la seguridad de que lo
queremos implementar funcionar.
Adems utilizar C++ para el periodo de prueba exige un tiempo normal de correccin de errores de bidos
al proceso de implementacin del algoritmo, es decir errores programticos efectuados por ejemplo al momento de
multiplicar dos matrices, etc. Todos estos problemas pueden ser resueltos si la implementacin de prueba es
realizada en MATLAB utilizando algoritmos programados para procesamiento de imgenes con ello el
tiempo de implementacin se convierte en el mnimo con la conanza de utilizar algoritmos cientcamente
probados y robustos.
Se pueden crear algoritmos trabajar con imgenes binarias, trasformaciones geomtricas, mo rfologa y
manipulacin de color que junto con las funciones ya integradas en Matlab permite realizar anlisis y
trasformaciones de imgenes en el dominio de la frecuencia (trasformada de Fourier y Wavlets).
Histograma
El histograma es una representacin global de los tonos de la imagen [4]. Este permite distinguir con datos cuantitativos
entre una imagen luminosa, obscura, con mucho o poco contraste. El histograma es en realidad una grfica de barras de
tonos contra nmero de ocurrencia de estos. En la Figura 4 se muestra una imagen y su histograma.

Ecualizado de Histograma
El ecualizado del histograma es el proceso que tiene como propsito distribuir la frecuencia de los tonos a lo largo del
histograma [4], es decir que la imagen resultante tendr menos contraste que la original, refirase a la Figura 6.

Desarrollo:
Prctica 3: Obtencin y almacenamiento de imgenes
El cdigo obtiene imgenes desde una cmara USB y las almacena en la carpeta de trabajo del 1 al 30
clc,clear all,close all
%video=videoinput('winvideo',2,'YUY_640x480');
video=videoinput('winvideo',1);
set(video,'ReturnedColorSpace','rgb');
start(video);
preview(video)
%pause
tic
for i=1:30
%tic
numero=num2str(i);
nombre=strcat('salida',numero,'.jpg');
foto=getsnapshot(video);
imwrite(foto,nombre);
%toc
end
toc

A continuacin se muestran las imgenes obtenidas(solo se muestran las 10 primeras para ahorrar papel):

Practica 3: Determinar la trayectoria de un objeto mediante el centroide:


Para este punto se utilizaron las imgenes tomadas en el laboratorio por Juan las cuales son 200, el cdigo constae una
segmentacin y despus la determinacin de los centroides de las figuras para despus graficarlos representando la
trayectoria descrita por el mvil:
clc,clear all,close all
ima=imread('C:\Users\Pobete\Documents\UPIITA\8tavo\Vision Artificial\Visin
artificial\OK200.jpg');
[fil,col,capa]=size(ima);
segmentada=zeros(fil,col);
for x=1:200
numero=num2str(x);
nombre=strcat('OK',numero,'.jpg');
ima=imread(nombre);
for i=1:fil
for j=1:col
if ima(i,j,1)>230 & ima(i,j,2)>230 & ima(i,j,3)>230
segmentada(i,j)=255;
else
segmentada(i,j)=0;
end
end
end
gris=segmentada;
sumafila=sum(gris');
sumacolumna=sum(gris);
inicio=0;
final=0;
for ii=1:length(sumafila)
if sumafila(ii)<900
sumafila(ii)=0;
else
if inicio==0
inicio=ii;
else
final=ii;
end
end
end
inicio2=0;
final2=0;
for ii=1:length(sumacolumna)
if sumacolumna(ii)<900
sumacolumna(ii)=0;
else
if inicio2==0
inicio2=ii;
else
final2=ii;
end
end

end
centrofila=480-((final-inicio)/2)-inicio;
centrocolumna=((final2-inicio2)/2)+inicio2;
plot(centrocolumna,centrofila,'*')
hold on
end

A continuacin se muestra la trayectoria descria en las primeras 100 imgenes:

500

450

400

350

300

250

200

150

100

200

300

400

500

600

A continuacin se muestra la trayectoria descrita por las 200 imgenes:


500
450
400
350
300
250
200
150
100
50

100

200

300

400

500

600

Practica 4 Aclarar u oscurecer imgenes con histograma:


Con el siguiente cdigo se logra aclarar una imagen obscura mediante el histograma de la siguiente manera:
clc,clear all,close all
%ima=imread('C:\Users\Pobete\Documents\UPIITA\8tavo\Vision
Artificial\sesion2\foto.jpg');
ima=imread('C:\Users\Pobete\Documents\UPIITA\8tavo\Vision
Artificial\sesion2\rammstein.bmp');
[fil,col,capa]=size(ima);
gris=rgb2gray(ima);
histograma=zeros(1,256);
for m=1:fil
for n=1:col
valor=double(gris(m,n))+1;
histograma(1,valor)=histograma(1,valor)+1;
end
end
figure,stem(histograma)
pro=histograma/(fil*col);
%para el acumulado de las probabilidades:
suma=0;
for i=1:256
suma=suma+pro(i);
sumapro(i)=suma;
end
figure,plot(sumapro)
salida=zeros(fil,col);
for m=1:fil
for n=1:col
valor=double(gris(m,n))+1;
salida(m,n)=round(sumapro(1,valor)*255);
end
end
salida=uint8(salida);
figure
subplot(1,2,1);imshow(gris)
subplot(1,2,2);imshow(salida)

Se utilizaron 2 imagenes:
Primera imagen:
Original

Aclarada

Como se puede ver en la grfica del histograma se trata de una imagen obscura por lo que el programa la aclara:
5

x 10

3.5
3
2.5
2
1.5
1
0.5
0

50

100

150

200

250

300

250

300

Grafica de la sumatoria de probabilidad:


1.1
1
0.9
0.8
0.7
0.6
0.5
0.4

50

100

150

200

Segunda Imagen:
Original

Obscurecida

En este caso se observa en el histograma que se trata de una imagen clara por lo que se obscurece:
5

2.5

x 10

1.5

0.5

50

100

150

200

250

300

Acumulado de probabilidades:
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0

50

100

150

200

250

300

Practica 4 Obtencin del contorno de una figura:

Conclusiones:
Estas prcticas, me permitieron entender mas las teoras de color que hemos estado viendo en clase, como es que estas
procesan los colores y a su vez como se ubican en un plano, conceptos como la iluminacin, saturacin, brillo, que antes
no comprenda de una forma tan clara como ahora puedo entender, el uso de las matrices de transformacin de un
espacio a otro, y la diferencia de usos de los mismos.
En mi mente rondan ideas de cmo utilizar este tipo de conceptos en los procesos industriales, como los ejemplos de
segmentacin que tambin estuvimos utilizando, en esta prctica.

Dentro de los espacios de colores podemos encontrar una amplia gama de opciones dentro de las cuales cada una tiene
sus ventajas y desventajas en cuanto al procesamiento de imgenes se refiere, en este caso observamos que para la
segmentacin por color el espacio HSV presenta una gran ventaja frente al RG B ya que este ltimo es muy sensible a
las variaciones de iluminacin, mientras que el espacio HSV presenta una forma sencilla de segmentar la imagen y
obtener excelentes resultados lo cual ser de mucha utilidad para los proyectos de la asignatura.
Se lleg a la conclusin de que el segmentado por RGB es muy complicado ya que las imgenes sufren muchsimos
cambios causados por la iluminacin y establecer un valor fijo para la segmentacin es muy complicado y variable, por lo
tanto, es ms recomendable segmentar por algn otro mtodo como puede ser el HSV.
Tambin pudimos transformar una imagen de color a escala de grises mediante la matriz para transformar de RGB a
HSV y se comprob que segmentar en HSV es mucho ms fcil.
En el laboratorio cuando se ejecuto el programa de segmentacin, pudimos observar que al formato RGB, le afecta el
nivel de iluminacin de la imagen, es decir, los colores se ven afectados por la calidad de la iluminacin con la que se
tom la imagen, por lo tanto, nos apoyamos en la conversin del formato RGB a otro que minimice el error provocado por
la calidad de la iluminacin, por ejemplo, en la practica transformamos al formato HSV para poder interpretarla en el
cdigo y segmentarla.
Hicimos tambin la transformacin de una imagen a color a escala de grises, cuidando que la imagen, no estuviera ya en
escala de grises, en el caso de que se diera, pudimos determinarlo mientras el cdigo se ejecutaba, enviando un
mensaje de error.

Bibliografa:
http://www.dzoom.org.es/noticia-3500.html
http://es.wikipedia.org/wiki/Modelo_de_color_RGB

Das könnte Ihnen auch gefallen