Professional Documents
Culture Documents
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
UPIITA-IPN
4MM6
Indice de figuras
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sistemas de Visi
on Artificial
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
4
4
6
9
9
10
10
12
13
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
Sistemas de Visi
on Artificial
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.
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
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;
Sistemas de Visi
on Artificial
UPIITA-IPN
4MM6
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
UPIITA-IPN
4MM6
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
UPIITA-IPN
4MM6
figure(2);
RGBima=CornerR+CornerV+CornerA;
imshow(RGBima);
Ahora mostramos el resultado del fragmento de programa anterior.
4.
Conclusiones.
Sistemas de Visi
on Artificial