You are on page 1of 10

Unidad Profesional Interdisciplinaria en

Ingeniera y Tecnologas Avanzadas


n de Borde y Centroide
Tarea 2: Deteccio

Sistemas de Visi
on Artificial.

Autor:
Peregrina Ochoa Alexander
Grupo: 4MM6
Boleta: 2011640389

Profesor:
Dr. Leonel Corona Ramrez

23 de septiembre de 2013

UPIITA-IPN

4MM6

Indice
1. Introducci
on.

2. Planteamiento.

3. Desarrollo.

4. Conclusiones.

Sistemas de Visi
on Artificial

13

Deteccion de Borde y Centroide

UPIITA-IPN

4MM6

Indice de figuras
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.

Distancia en un sistema de coordenadas cartesianas.


Modelo aditivo de colores rojo, verde, azul. . . . . .
Imagen Real a segmentar por colores basicos puros
Imagen con colores rojo verde y azul separados. . .
Deteccion de borde y Centroide de la imagen inicial
Imagen con el color verde separado . . . . . . . . .
Imagen con el color azul separado . . . . . . . . . .
Imagen Original a tratar . . . . . . . . . . . . . . .
Imagenes con filtros de colores . . . . . . . . . . . .
Imagenes con filtros de colores obscuros . . . . . . .

Sistemas de Visi
on Artificial

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

3
4
4
6
9
9
10
10
12
13

Deteccion de Borde y Centroide

UPIITA-IPN

1.

4MM6

Introducci
on.

Distancia Euclidiana
En matematicas, la distancia euclidiana o eucldea es la distancia ordinaria (que se medira con una
regla) entre dos puntos de un espacio eucldeo, la cual se deduce a partir del teorema de Pitagoras.
Por ejemplo, en un espacio bidimensional, la distancia euclidiana entre dos puntos P1 y P2 , de
coordenadas cartesianas (x1 , y1 ) y (x2 , y2 ) respectivamente, es:
p
(x2 x1 )2 + (y2 y1 )2

Figura 1: Distancia en un sistema de coordenadas cartesianas.


En general, la distancia euclidiana entre los puntos P = (p1 , p2 , . . . , pn ) y Q = (q1 , q2 , . . . , qn ),
del espacio eucldeo n-dimensional, se define como:
p
pPn
2
dE (P, Q) = (p1 q1 )2 + (p2 q2 )2 + + (pn qn )2 =
i=1 (pi qi ) .
Notese que esta definicion depende de la existencia de coordenadas cartesianas sobre la variedad
diferenciable Rn , ), aunque en un espacio eucldeo pueden definirse sistemas de coordenadas mas
generales, siempre es posible definir un conjunto global de coordenadas cartesianas (a diferencia
de una superficie curva donde solo existen localmente).
Espacio de Color RGB
RGB es un modelo de color basado en la sntesis aditiva, con el que es posible representar un
color mediante la mezcla por adicion de los tres colores de luz primarios. El modelo de color RGB
no define por s mismo lo que significa exactamente rojo, verde o azul, por lo que los mismos
valores RGB pueden mostrar colores notablemente diferentes en diferentes dispositivos que usen
este modelo de color. Aunque utilicen un mismo modelo de color, sus espacios de color pueden
variar considerablemente.
El modelo de color llamado RGB es el que se utiliza en todos los sistemas que forman imagenes
a traves de rayos luminosos, ya sea emitiendolos o recibiendolos.
El modelo RGB esta formado por los tres componentes de colores primarios aditivos y como
mnimo un componente de sincronismo. Los componentes de color son las se
nales rojo, verde y

Sistemas de Visi
on Artificial

Deteccion de Borde y Centroide

UPIITA-IPN

4MM6

azul (viniendo el nombre de las iniciales de su nomenclatura inglesa Red, Green, Blue); siendo
transmitidos cada uno independiente y aislado del resto.
De esta forma no hay perdidas en el tratamiento de la imagen puesto que los colores primarios
siguen existiendo como tal en su transmision. Por el contrario, mediante este sistema hay mucha
informacion redundante, con el consiguiente aumento del ancho de banda necesario respecto a
otros metodos de transmision. Por ejemplo, cada color lleva el valor de brillo de toda la imagen,
de forma que esta informacion esta por triplicado.

Figura 2: Modelo aditivo de colores rojo, verde, azul.

2.

Planteamiento.

En esta practica realizaremos una separacion por colores o deteccion de ciertos colores mediante
el uso de la distancia euclidiana con el modelo RGB como se realizo en una practica pasada.
Posteriormente haremos una deteccion de borde, comparando cada pxel con el pxel posterior,
anterior, superior e inferior, por medio de ciclos for. A continuacion se muestra la imagen a tratar

Figura 3: Imagen Real a segmentar por colores basicos puros


Sistemas de Visi
on Artificial

Deteccion de Borde y Centroide

UPIITA-IPN

3.

4MM6

Desarrollo.

Primero proponemos tres distancias d1,d2 y d3 las cuales nos daran la nocion de que tan lejos se
encuentra el respectivo pxel del rojo puro, verde puro y azul puro respectivamente. A continuacion
se muestra el codigo para la separacion por colores basicos puros.
clc, clear all, close all;
A=imread(imcolors3.png); %imagen a usar
D=imresize(A,0.70); %Rescalamos la imagen
tam=size(D);

for i=1:tam(1)
for j=1:tam(2)
d1=sqrt((255-double(D(i,j,1)))^2+(0-double(D(i,j,2)))^2+(0-double(D(i,j,3)))^2);%Para
d2=sqrt((0-double(D(i,j,1)))^2+(255-double(D(i,j,2)))^2+(0-double(D(i,j,3)))^2);%Para
d3=sqrt((0-double(D(i,j,1)))^2+(0-double(D(i,j,2)))^2+(255-double(D(i,j,3)))^2);%Para
MIN=min(min(d1,d2),d3);%Sabemos que distancia es la menor y clasificamos
%asignamos negro en caso de que el m
nimo no sea rojo
if d1==d2 & d2==d3 %En caso de que todas sean iguales
rojo(i,j,1)=0;
rojo(i,j,2)=0;
rojo(i,j,3)=0;
verde(i,j,1)=0;
verde(i,j,2)=0;
verde(i,j,3)=0;
azul(i,j,1)=0;
azul(i,j,2)=0;
azul(i,j,3)=0;

elseif MIN==d1 % En caso de que el rojo sea el menor


rojo(i,j,1)=255;
rojo(i,j,2)=0;
rojo(i,j,3)=0;
verde(i,j,1)=0;
verde(i,j,2)=0;
verde(i,j,3)=0;
azul(i,j,1)=0;
azul(i,j,2)=0;
azul(i,j,3)=0;

Sistemas de Visi
on Artificial

Deteccion de Borde y Centroide

UPIITA-IPN

4MM6

elseif MIN==d2 %En caso de el verde sea el menor


rojo(i,j,1)=0;
rojo(i,j,2)=0;
rojo(i,j,3)=0;
verde(i,j,1)=0;
verde(i,j,2)=255;
verde(i,j,3)=0;
azul(i,j,1)=0;
azul(i,j,2)=0;
azul(i,j,3)=0;
elseif MIN==d3 %En caso de el azul sea el menor
rojo(i,j,1)=0;
rojo(i,j,2)=0;
rojo(i,j,3)=0;
verde(i,j,1)=0;
verde(i,j,2)=0;
verde(i,j,3)=0;
azul(i,j,1)=0;
azul(i,j,2)=0;
azul(i,j,3)=255;
end
end
end

Figura 4: Imagen con colores rojo verde y azul separados.


Ahora detectaremos el borde de las figuras pasando las imagenes con los colores separados a escala
de grises, ya que esto solo nos dara una capa y trabajaremos con dos valores logicos 0 y 1 ya
Sistemas de Visi
on Artificial

Deteccion de Borde y Centroide

UPIITA-IPN

4MM6

que asignamos el maximo y mnimo de color en la escala RGB. Posteriormente comparamos cada
pxel con su correspondiente superior, inferior, posterior y anterior. Si alguno de ellos es diferente
al central el pxel sera marcado para indicar que es un borde. Por u
ltimo se debe realizar una
sumatoria de las coordenadas en x y y de cada posicion donde se marco borde, y tenemos que
dividir entre el n
umero de pxeles que marcamos como permetro o borde de cada figura.
GRISr=255*rgb2gray(rojo);
GRISv=255*rgb2gray(verde);
GRISa=255*rgb2gray(azul);
tam2=size(GRISr);
x1=0;
y1=0;
n1=0;
x2=0;
y2=0;
n2=0;
x3=0;
y3=0;
n3=0;
%mostramos la imagen
for i=2:tam2(1)-1
for j=2:tam2(2)-1
if ((GRISr(i,j)~=GRISr(i-1,j)) || (GRISr(i,j)~=GRISr(i,j+1))...
|| (GRISr(i,j)~=GRISr(i+1,j)) || (GRISr(i,j)~=GRISr(i,j-1)))
CornerR(i,j)=255;
x1=x1+i;
y1=y1+j;
n1=n1+1;
else
CornerR(i,j)=0;
end
if ((GRISv(i,j)~=GRISv(i-1,j)) || (GRISv(i,j)~=GRISv(i,j+1))|| ...
(GRISv(i,j)~=GRISv(i+1,j)) || (GRISv(i,j)~=GRISv(i,j-1)))
CornerV(i,j)=255;
x2=x2+i;
y2=y2+j;
n2=n2+1;
else
CornerV(i,j)=0;
end
Sistemas de Visi
on Artificial

Deteccion de Borde y Centroide

UPIITA-IPN

4MM6

if ((GRISa(i,j)~=GRISa(i-1,j)) || (GRISa(i,j)~=GRISa(i,j+1))|| ...


(GRISa(i,j)~=GRISa(i+1,j)) || (GRISa(i,j)~=GRISa(i,j-1)))
CornerA(i,j)=255;
x3=x3+i;
y3=y3+j;
n3=n3+1;
else
CornerA(i,j)=0;
end
end

end
pxr=uint16(x1/n1);
pyr=uint16(y1/n1);
pxv=uint16(x2/n2);
pyv=uint16(y2/n2);
pxa=uint16(x3/n3);
pya=uint16(y3/n3);
CornerR(pxr,pyr)=255;
CornerR(pxr+1,pyr)=255;
CornerR(pxr,pyr+1)=255;
CornerR(pxr-1,pyr)=255;
CornerR(pxr,pyr-1)=255;
CornerV(pxv,pyv)=255;
CornerV(pxv+1,pyv)=255;
CornerV(pxv,pyv+1)=255;
CornerV(pxv-1,pyv)=255;
CornerV(pxv,pyv-1)=255;
CornerA(pxa,pya)=255;
CornerA(pxa+1,pya)=255;
CornerA(pxa,pya+1)=255;
CornerA(pxa-1,pya)=255;
CornerA(pxa,pya-1)=255;
figure(1);
imshow(azul+rojo+verde);
Sistemas de Visi
on Artificial

Deteccion de Borde y Centroide

UPIITA-IPN

4MM6

figure(2);
RGBima=CornerR+CornerV+CornerA;
imshow(RGBima);
Ahora mostramos el resultado del fragmento de programa anterior.

Figura 5: Deteccion de borde y Centroide de la imagen inicial

4.

Conclusiones.

La deteccion de borde realizada en esta practica es relativamente sencilla, pero no es optima su


utilizacion ya que deben ser imagenes con los colores muy definidos los cuales no se difuminan ni
cambian de brillo o saturacion, se optimizara si la separacion de color la hicieramos por el metodo
de HSV, ya que no solo detectaramos un color especfico sino una gamma de colores con diferentes
niveles de saturacion y brillo.

Sistemas de Visi
on Artificial

Deteccion de Borde y Centroide

You might also like