sistemas de vision

50
Montero Gómez Miguel Eduardo [email protected] 17 de julio del 2012 Universidad Politécnica de Guanajuato Sistemas de Visión.

Upload: miguel-montero

Post on 03-Jul-2015

585 views

Category:

Technology


1 download

DESCRIPTION

programa de vision artificial

TRANSCRIPT

Montero Gómez Miguel Eduardo

[email protected]

17 de julio del 2012

Universidad Politécnica de Guanajuato

Sistemas de Visión.

Sistemas de visón.

1

ÍNDICE

I.-Resumen………………………………………………………………………………..2

II.-Introducción…………………………………………………………………………….3

III.-Objetivo...……………………………………………………………………………….4

IV.-Planteamiento del problema……………………………………………..…………..5

V.-Justificación…………………………………………………………………………….6

VI.-Desarrollo………………………………………………………………………...…….7

VII.-Código……...……………………………………………………………………..….12

VIII.-Bibliografías…………………………………………………………………………49

Sistemas de visón.

2

1.- RESUMEN.

Los problemas que hoy en dia se tienen en los sistemas de vision son muy

complejos, en este reporte se atacara un problema en donde se tienen 20

imágenes en donde hay 3 piezas circulares fijas Fig1.1 y se tiene un solo elemento

movil el cual tendra distinta ubicación en las 20 fotografias , se desarrollara un

programa en Matlab para que se pudea identificar los elementos fijos y se grafique

en otra foto para este caso en particular se llamara foto 21 en ella contendra la

ubicación de los puntos fijos y la trayectoria de la pieza movil con respecto alas 20

fotos.

Sistemas de visón.

3

2.- INTRODUCCIÓN.

Aunque en las últimas dos décadas los sistemas de visón han cambiado mucho

los problemas que tienen no, como todo problema de un sistema de visón se trata

de ayudar a la computadora a entender y tratar de darle la capacidad de ver el

mundo como nosotros lo vemos pero para este camino aún falta mucho trayecto

así que en este reporte se explicara el proceso en donde se han captado mediante

una cámara y un ambiente controlado con iluminación y fondo 20 imágenes de

interés para el análisis de las fotos para determinar la trayectoria de un elemento

móvil en 20 fotos distinta, sin cambiar su tamaño o forma bidimensional.

Los problemas que hoy en dia se tienen en los sistemas de vision son muy

complejos, en este reporte se atacara un problema en donde se tienen 20

imágenes en donde hay 3 piezas circulares fijas Fig1.1 y se tiene un solo elemento

movil el cual tendra distinta ubicación en las 20 fotografias , se desarrollara un

programa en Matlab para que se pudea identificar los elementos fijos y se grafique

en otra foto para este caso en particular se llamara foto 21 en ella contendra la

ubicación de los puntos fijos y la trayectoria de la pieza movil con respecto alas 20

fotos.

Sistemas de visón.

4

3.- OBJETIVO.

Conocer los objetos fijos y móviles de una serie de 20 fotos y graficar de manera

representativa en Matlab la trayectoria del objeto fijo en una sola foto.

Sistemas de visón.

5

4.- PLANTEAMIENTO DEL PROBLEMA

Se tiene una serie de 20 fotos tomadas en condiciones contralas en una cámara

de visión, se plantea desarrollar un código en Matlab para que la computadora sea

capaz de determinar foto por foto los puntos fijos y la trayectoria que generara los

puntos móviles.

Sistemas de visón.

6

5.- JUSTIFICACIÓN.

Esta investigación fue realizada con el solo fin específico de conocer los objetos

fijos y móviles en una serie de 20 fotos y determinar sus propiedades de cada foto

como área, centroides y aplicaciones para procesamiento como dilatación y

erosión.

Sistemas de visón.

7

6.- DESARROLLO

Proceso:

1.- Se cargan las 20 fotos al sistema

Muestra de fotos.

Figura 1.1.

Sistemas de visón.

8

2.- Se binariza la foto:

Foto binarizada

Figura 1.2

3.- Se realiza un corte para eliminar una sección que no son sirve.

Figura 1.3 Recorte de basura binarizada en Matlab

Sistemas de visón.

9

4.- Se invierte binarización.

Figura 1.4 Se invierte Binarización

5.- Empieza la parte de procesamiento de imagen

6.- Se aplican 4 dilataciones

Figura 1.5 Se Aplican 4 Dilataciones

Sistemas de visón.

10

7.- Se aplica 1 erosión.

Figura 1.6 Se aplica una Erosión.

Al obtener esta última foto podemos ya obtener propiedades, al aplicar a la foto un proceso para

encontrar áreas, encontraremos todas las áreas que tengan la imagen Figura1.6, obtendremos un

total de 29 áreas demasiado pequeñas 3 áreas muy grandes que serán identificadas como los

puntos fijos y una área más chica que será identificada como nuestro punto fijo y obtener

ordenadas de los 4 objetos y así graficarlos en otra foto.

La manera de separar estas 29 áreas que no nos sirves es con un ciclo FOR que se mostrara al

final.

Sistemas de visón.

11

En esta foto podemos observar que se obtuvieron las coordenadas de los puntos fijos y se

graficaron en otra foto distinta en forma de cuadros un poco más grandes con respecto al punto fijo

que de igual forma esta graficada.

Figura 1.7. Foto 21 graficando con respecto a las coordenadas encontradas.

De esta forma se analizó la primera foto solo falta analizar las 19 fotos restantes y al obtener los

puntos coordenados del moviente de la pieza fija y en base a esos puntos graficarlos en la foto que

creamos

Figura 1.8. Análisis de 15 fotos y grafica de la ruta del punto móvil.

Sistemas de visón.

12

Código en Matlab.

%Programa que identifica las piezas fijas y móviles %trazando la trayectoria de la pieza fija %Este es un código específico para las fotos de un tamaño 2560 x 1920 %Lectura de la primera foto

A=imread('1.jpg');

%binarización de la foto

BA=im2bw(A,0.2); q=size(BA);

%invertir binarización

%figure(1) %imshow(BA);

%"Corte" de la foto para quitar basura binaria

for i=1:q(1) for j=2200:2560

if BA(i,j) == 0;

BA(i,j)=1;

end

end end

%figure(2) %imshow(BA);

q=size(BA);

%"Inverir" Binarizacion

for i=1:q(1) for j=1:q(2)

if BA(i,j) == 0;

BA2(i,j)=1; end

end end

Sistemas de visón.

13

%figure(3) %imshow(BA2);

%4 Dilataciones

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA2, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

%imshow(M2);

%1 erosion

se=strel('disk',4); ero=imerode(M2,se); %imshow(ero)

%sacar Area

s=bwlabel(ero,8);

s1=imfeature(s,'Area'); %aqui conocemos todas las areas de la foto

analizada

%encontrar las areas de los puntos fijos

j=1; for i=1:size(s1)

if s1(i,1).Area >70000 s1(i,1).Area; %como hacer dinamico el sistema i; if i~0 ; v(j)=i; j=j+1; end end

end v; %tiene almacenado los valores de los puntos fijos

j=j-1;

Sistemas de visón.

14

j; %tiene almacenado cuantas piezas fijas tiene Num=size(v);

%sacar centroides para conocer cordenadas

s2=imfeature(s,'Centroid');

%cambiar las cordenadas a entero

%O1=s2(v(1),1).Centroid; pxy1=int32(s2(v(1),1).Centroid);

%O2=s2(v(2),1).Centroid; pxy2=int32(s2(v(2),1).Centroid);

%O3=s2(v(3),1).Centroid; pxy3=int32(s2(v(3),1).Centroid);

%crear la foto 21 %0=negro %1=blanco

foto21=zeros(1920,2560); %imshow(foto21); %trazar un cuadrado en las cordenadas de los objetos fijos en la foto 21

for i=1:150 for j=1:150

foto21(i+pxy3(2),j+pxy3(1)) = 1; foto21(i+pxy2(2),j+pxy2(1)) = 1; foto21(i+pxy1(2),j+pxy1(1)) = 1;

end

end %imshow(foto21); %impixelinfo

%determinar cordenadas del punto movil con respecto a su area y centroide

%s1

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

Sistemas de visón.

15

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1;

%trazar un cuadradito mas pequeño en la foto 21 con respecto ala pieza

fija

%M1=s2(v(1),1).Centroid; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%imshow(foto21); %impixelinfo

%leer todas las 19 fotos restantes % % % % % % % % %222222222222222222222222222222222 A=imread('2.jpg'); BA2=im2bw(A,0.2); q=size(BA2);

for i=1:q(1) for j=2200:2560

if BA2(i,j) == 0;

BA2(i,j)=1;

end

Sistemas de visón.

16

end end

q=size(BA2);

for i=1:q(1) for j=1:q(2)

if BA2(i,j) == 0;

BA22(i,j)=1; end

end end

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA22, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

Sistemas de visón.

17

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end %impixelinfo

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%3333333333333333333333333333333333333333333333 A=imread('3.jpg'); BA3=im2bw(A,0.2); q=size(BA3);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA3(i,j) == 0;

BA3(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA3);

for i=1:q(1) for j=1:q(2)

if BA3(i,j) == 0;

BA23(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA23, L); %1era dilatacion

Sistemas de visón.

18

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid) pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%444444444444444444444444444444444444444444 A=imread('4.jpg'); BA4=im2bw(A,0.2); q=size(BA4);

Sistemas de visón.

19

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA4(i,j) == 0;

BA4(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA4);

for i=1:q(1) for j=1:q(2)

if BA4(i,j) == 0;

BA24(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA24, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

Sistemas de visón.

20

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%5555555555555555555555555555555555555555 A=imread('5.jpg'); BA5=im2bw(A,0.2); q=size(BA5);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA5(i,j) == 0;

BA5(i,j)=1;

end

end end

Sistemas de visón.

21

%figure(2); %imshow(BA3)

q=size(BA5);

for i=1:q(1) for j=1:q(2)

if BA5(i,j) == 0;

BA25(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA25, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1;

Sistemas de visón.

22

pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%666666666666666666666666666666666666666666666 A=imread('6.jpg'); BA6=im2bw(A,0.2); q=size(BA6);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA6(i,j) == 0;

BA6(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA6);

for i=1:q(1) for j=1:q(2)

if BA6(i,j) == 0;

BA26(i,j)=1; end

end end

Sistemas de visón.

23

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA26, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

Sistemas de visón.

24

%7777777777777777777777777777777777777777 A=imread('7.jpg'); BA7=im2bw(A,0.2); q=size(BA7);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA7(i,j) == 0;

BA7(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA7);

for i=1:q(1) for j=1:q(2)

if BA7(i,j) == 0;

BA27(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA27, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4);

Sistemas de visón.

25

%imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%8888888888888888888888888888888888888888888888888888 A=imread('8.jpg'); BA8=im2bw(A,0.2); q=size(BA6);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA8(i,j) == 0;

BA8(i,j)=1;

Sistemas de visón.

26

end

end end

%figure(2); %imshow(BA3)

q=size(BA8);

for i=1:q(1) for j=1:q(2)

if BA8(i,j) == 0;

BA28(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA28, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i;

Sistemas de visón.

27

end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%9999999999999999999999999999999999999999 A=imread('9.jpg'); BA9=im2bw(A,0.2); q=size(BA6);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA9(i,j) == 0;

BA9(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA9);

for i=1:q(1) for j=1:q(2)

if BA9(i,j) == 0;

Sistemas de visón.

28

BA29(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA29, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

Sistemas de visón.

29

end

end

%imshow(foto21); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%10 10 10 10 10 10 10 10 10 10 10 10 10 A=imread('10.jpg'); BA10=im2bw(A,0.2); q=size(BA10);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA10(i,j) == 0;

BA10(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA10);

for i=1:q(1) for j=1:q(2)

if BA10(i,j) == 0;

BA210(i,j)=1; end

end end

%figure(3); %imshow(BA23)

Sistemas de visón.

30

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA210, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%imshow(foto21); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

Sistemas de visón.

31

%11 11 11 11 11 11 11 11 11 11 11 11 11 A=imread('11.jpg'); BA11=im2bw(A,0.2); q=size(BA11);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA11(i,j) == 0;

BA11(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA11);

for i=1:q(1) for j=1:q(2)

if BA11(i,j) == 0;

BA211(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA211, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

Sistemas de visón.

32

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%imshow(foto21); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 A=imread('12.jpg'); BA12=im2bw(A,0.2); q=size(BA12);

%figure(1); %imshow(BA3)

Sistemas de visón.

33

for i=1:q(1) for j=2200:2560

if BA12(i,j) == 0;

BA12(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA12);

for i=1:q(1) for j=1:q(2)

if BA12(i,j) == 0;

BA212(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA212, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

Sistemas de visón.

34

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%imshow(foto21); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%13 13 13 1313 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 A=imread('13.jpg'); BA13=im2bw(A,0.2); q=size(BA13);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA13(i,j) == 0;

BA13(i,j)=1;

end

Sistemas de visón.

35

end end

%figure(2); %imshow(BA3)

q=size(BA13);

for i=1:q(1) for j=1:q(2)

if BA13(i,j) == 0;

BA213(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA213, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

Sistemas de visón.

36

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%imshow(foto21); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 A=imread('14.jpg'); BA14=im2bw(A,0.2); q=size(BA14);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA14(i,j) == 0;

BA14(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA14);

for i=1:q(1)

Sistemas de visón.

37

for j=1:q(2)

if BA14(i,j) == 0;

BA214(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA214, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

Sistemas de visón.

38

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%imshow(foto21); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 A=imread('15.jpg'); BA15=im2bw(A,0.2); q=size(BA15);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA15(i,j) == 0;

BA15(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA15);

for i=1:q(1) for j=1:q(2)

if BA15(i,j) == 0;

BA215(i,j)=1; end

end end

Sistemas de visón.

39

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA215, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%imshow(foto21); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

Sistemas de visón.

40

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%16 16 16 16 16 16 16 166 16 16 16 16 16 16 16 16 A=imread('16.jpg'); BA16=im2bw(A,0.2); q=size(BA14);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA16(i,j) == 0;

BA16(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA16);

for i=1:q(1) for j=1:q(2)

if BA16(i,j) == 0;

BA216(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA216, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

Sistemas de visón.

41

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%imshow(foto21); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 A=imread('17.jpg'); BA17=im2bw(A,0.2); q=size(BA17);

Sistemas de visón.

42

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA17(i,j) == 0;

BA17(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA17);

for i=1:q(1) for j=1:q(2)

if BA17(i,j) == 0;

BA217(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA217, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

Sistemas de visón.

43

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%imshow(foto21); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 A=imread('18.jpg'); BA18=im2bw(A,0.2); q=size(BA18);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA18(i,j) == 0;

Sistemas de visón.

44

BA18(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA18);

for i=1:q(1) for j=1:q(2)

if BA18(i,j) == 0;

BA218(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA218, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area;

Sistemas de visón.

45

vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%imshow(foto21); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 A=imread('19.jpg'); BA19=im2bw(A,0.2); q=size(BA19);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA19(i,j) == 0;

BA19(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

Sistemas de visón.

46

q=size(BA19);

for i=1:q(1) for j=1:q(2)

if BA19(i,j) == 0;

BA219(i,j)=1; end

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA219, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

Sistemas de visón.

47

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

%imshow(foto21); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 A=imread('20.jpg'); BA20=im2bw(A,0.2); q=size(BA20);

%figure(1); %imshow(BA3)

for i=1:q(1) for j=2200:2560

if BA20(i,j) == 0;

BA20(i,j)=1;

end

end end

%figure(2); %imshow(BA3)

q=size(BA20);

for i=1:q(1) for j=1:q(2)

if BA20(i,j) == 0;

BA220(i,j)=1; end

Sistemas de visón.

48

end end

%figure(3); %imshow(BA23)

L=[1 1 1; 1 1 1; 1 1 1]; %elemento estructurante

M=imdilate(BA220, L); %1era dilatacion

M1=imdilate(M, L); %segunda dilatacion

M2=imdilate(M1, L); % tercera dilatacion

se=strel('disk',4); ero=imerode(M2,se);

%figure(4); %imshow(ero)

s=bwlabel(ero,8);

s1=imfeature(s,'Area');

s2=imfeature(s,'Centroid');

for i=1:size(s1)

if s1(i,1).Area >50000 if s1(i,1).Area <90000

i; s1(i,1).Area; vmovil1=i; end end

end

vmovil1; pmovil1=int32(s2(vmovil1,1).Centroid); pmovil1; %contiene el valor numerico del centroide dela pieza movil

for i=1:50 for j=1:50

foto21(i+pmovil1(2),j+pmovil1(1)) = 1;

end

end

Sistemas de visón.

49

imshow(foto21); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%

%mostrar la foto 21

Bibliografías.

Digital image using Matlab processing

Rafael c. Gonzales

Pearson Prentins Hall