Вы находитесь на странице: 1из 110

Ca tedra de Visio n

Artificial
Apuntes de ctedra
Universidad Nacional de Quilmes. Ingeniera en Automatizacin y Control Industrial. IACI 2013.

Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imgenes 1
Comandos de MatLab utilizados para el procesamiento de imgenes.


Cargar imgenes en matrices:

A=double(imread(NombreImagen,Formato));

Donde NombreImagen representa el nombre de la imagen con el path completo y
Formato representa el formato de la imagen. La funcin double se utiliza para poder
realizar operaciones con la matriz A que implican nmeros decimales (hay ciertas
operaciones que no se pueden hacer con variables del tipo uint8 como lo son los niveles
de gris de las imgenes que utilizamos generalmente). El formato de imagen comnmente
utilizado es el tif .

Ejemplo:

A=double(imread('C:\MATLAB6p5\toolbox\images\imdemos\circuit.tif','tif'));

En el caso de imgenes en formato jpg, se debe hacer un paso ms para obtener la i-
magen en escala de grises (debido a la forma en que se almacena la imagen jpg).

Ejemplo:

A=double(imread('C:\MATLAB6p5\toolbox\images\imdemos\football.jpg','jpg'));
A=A(:,:,1);


Visualizar imgenes a partir de una matriz:

imshow(uint8(A))

Donde A es la matriz que representa la imagen y uint8 se utiliza para convertir los ele-
mentos de A en enteros de 8 bits (256 niveles de gris). Si la imagen ya est en formato
uint8 no es necesario usar la funcin uint8.

Visualizar ms de una imagen en una misma ventana:

subplot(2,2,1);imshow(uint8(A))
subplot(2,2,2);imshow(uint8(B))
subplot(2,2,3);imshow(uint8(C))
subplot(2,2,4);imshow(uint8(D))

En este caso, se visualiza un arreglo de imgenes de 2x2. Lo mismo se puede hacer
para ver otro tipo de grficos.


Operaciones con matrices:

u=[1 2 3 4]; % Crea un vector columna
u=[1;2;3;4]; % Crea un vector fila
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imgenes 2

A=[1 2 3;4 5 6]; % Crea una matriz de 2x3 con los elementos indicados

A=ones(n,m); % Crea una matriz de 1s de nxm
A=ones(n); % Crea una matriz de 1s de orden n

[n,m]=size(A); % Almacena en n y m el nmero de filas y columnas, respecti-
vamente, de A

B=ones(size(A)); % Crea una matriz de 1s del mismo tamao de A

A=zeros(n,m); % Crea una matriz de 0s de nxm
A=zeros(n); % Crea una matriz de 0s de orden n

B=zeros(size(A)); % Crea una matriz de 0s del mismo tamao de A


C=A.; % C es la transpuesta de A
# Cuando se trabaja con matrices que no son reales se puede utilizar lo siguiente
C=A; % C es la transpuesta conjugada de A

A=B+C; % Suma de matrices
A=B-C; % Resta de matrices
A=B.*C; % Multiplicacin elemento a elemento de matrices

B=(A>umbral)*k; % B ser una matriz del mismo tamao de A cuyos elementos
sern 0 o k dependiendo si los elementos anlogos de A son
mayores que el umbral

A(i,j) representa el elemento de la fila i y la columna j de la matriz A

A(i:j,u:v) es la matriz formada por los elementos de la matriz A que se encuentran
entre las filas i y j y las columnas u y v.

Ejemplo:






Algunas sentencias:

Bucle for

Generalmente se utiliza en la siguiente forma:

for Variable=ValorInicial:Incremento:ValorFinal
....
end

=
16 15 14 13
12 11 10 9
8 7 6 5
4 3 2 1
A

=
12 11
8 7
) 4 : 3 , 3 : 2 ( A
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imgenes 3

Ejemplos:

nU=10;
u=zeros(1,nU);
for i=2:2:nU
u(i)=u(i-1)+i;
end

Luego, u=[0 2 0 4 0 6 0 8 0 10].
# Si el incremento es 1 no es necesario explicitarlo (for i=2:nU).

Al igual que en la mayora de los lenguajes de programacin se pueden anidar los bu-
cles for. Por ejemplo,

for i=1:nA
for j=1:mA
...........
end
end

Para establecer los lmites y el incremento de la variable que rige el bucle se pueden u-
tilizar expresiones (siempre utilizando parntesis, como se indica en el ejemplo):

i=1;
j=1;
nU=10;
u=zeros(1,nU);
for i=(i+j):2:nU
u(i)=u(i-1)+i;
end


Condicional if

Su forma general es la que sigue:

if Expresin
....
elseif Expresin
....
else
....
end

Donde Expresin representa la condicin (o condiciones) que debe cumplirse para que
se ejecuten las instrucciones que siguen a continuacin. elseif se utiliza para evitar
colocar varios if...end. Tanto elseif como else son opcionales.
Para construir la Expresin se pueden utilizar los siguientes operadores: ==, <, >, <=,
>=, o ~= (distinto). Ejemplos:
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imgenes 4

if I == J
A(I,J) = 2;
elseif abs(I-J) == 1
A(I,J) = -1;
else
A(I,J) = 0;
end

Tambin se pueden utilizar los operadores | o & que representan las operaciones or y
and, respectivamente. Ejemplo:

for i=1:nC
for j=1:mC
if (Ruido(i,j)<200 | Ruido(i,j)>255)
Ruido(i,j)=0;
end
end
end


Funciones y comandos relacionados con las transformadas:

Transformada discreta de Fourier en dos dimensiones

Fa=fft2(A);

Esta funcin mapea las frecuencias altas en el centro del espectro mientras que las
frecuencias ms bajas se encuentran en la periferia. Para colocar la frecuencia cero en el
centro del espectro se debe utilizar, adems, la funcin fftshift de la siguiente forma:

Fa=fft2(A);
Fa=fftshift(Fa);
o
Fa=fftshift(fft2(A));

Antitransformada discreta de Fourier en dos dimensiones

A=ifft2(Fa);

Debido a que Fa es una matriz compleja, al antitransformar pueden quedar ciertos resi-
duos de nmeros imaginarios que se deben a la precisin limitada del clculo. Esto hace
que la imagen resultante est constituida por algunos pxeles con nivel de gris complejo,
algo que es absurdo.
Para evitar esto, se utiliza la funcin abs que devuelve el mdulo de los elementos de
una matriz.

A=abs(ifft2(Fa));


Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imgenes 5
Visualizacin de la transformada discreta de Fourier

En realidad, lo que se grafica en tres dimensiones es la magnitud de la transformada
discreta de Fourier.

mesh(abs(Fa))

Como en la mayora de los casos, se utiliza una escala logartmica en el espacio de
frecuencias. Esto se realiza de la siguiente forma:

mesh(log(abs(Fa)))

Filtro Digital: Y= filter2(B,X);

La funcin filter2 filtra los datos en X con el ncleo dado por la matriz B. El resultado, Y,
es calculado por medio de una correlacin en dos dimensiones y es del mismo tamao
que X.

Generalmente, se debe pasar a la funcin un parmetro adicional para que devuelva la
parte central de la correlacin:

Y= filter2(B,X,same);

Filtro de Mediana:

B=medfilt2(A,[M N]); Realiza el filtro de mediana sobre la imagen B. M y N
son el nmero de filas y el de columnas de la mscara


Algunas funciones especiales:

b=fix(a); % Toma la parte entera del nmero a

c=round(a); % Redondea al entero ms cercano

B=min(B,100); % En este ejemplo, min devuelve el valor ms bajo entre B y 100







B=max(B,50); % En este ejemplo, max devuelve el valor ms alto entre B y 50





=
89 27 0
99 100 12
178 45 255
B
) 100 , min(B B =

=
89 27 0
99 100 12
100 45 100
B

=
89 27 0
99 100 12
100 45 100
B
) 100 , max(B B =

=
89 50 50
99 100 50
100 50 100
B
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imgenes 6

v=mean(u); % Calcula el promedio del vector u
b=mean(A); % Calcula los promedios de las columnas de A. B es un vector
fila
b=mean(mean(A)); % Calcula el promedio de la matriz A

v=sum(u); % Calcula la suma de los elementos del vector u
b=sum(A); % Calcula la suma de las columnas de A. B es un vector fila
b=sum(sum(A)); % Calcula la suma de los elementos de A

[I,J]=find(A); % Devuelve los ndices de las filas y columnas de los
elementos distintos de cero de la matriz A

pixval % Muestra las coordenadas y el nivel de gris del pxel sealado
por el puntero del mouse cuando ste se ubica sobre la imagen
en una figura

H=hist(A); % Calcula el histograma de A. A debe estar en formato uint8,
de lo contrario, se debe convertir: uint8(A)

imhist(A) % Muestra en una figura el histograma de A (que debe ser un
array uint8)

Aeq=histeq(A); % Realza la imagen A (que debe ser una matriz de uint8)

c=and(a,b); % AND lgica
c=and(a>1,b~=0);

c=or(a,b); % OR lgico
c=or(a>1,b~=0);


Algunos ejemplos:

for i=2:f-2
for j=2:col-2
C(i,j)=abs([1 1 1]*A((i-1):(i+1),j-1)-[1 1 1]*A((i-1):(i+1),j+1));
end
end

for i=2:f-2
for j=2:col-2
D(i,j)=abs([1 1 1]*(A(i,(j-1):(j+1)))'-[1 1 1]*(A(i+1,(j-1):(j+1)))');
end
end

for i=2:f-2
for j=2:col-2
E(i,j)=max(C(i,j),D(i,j));
end
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Comandos comunes de Matlab para el procesamiento de imgenes 7
end


N2=ones(5)/25;
for i=4:f-4
for j=4:col-4
Aux=N2.*A((i-2):(i+2),(j-2):(j+2));
Aux1=0;
for h=1:25
Aux1=Aux(h)+Aux1;
end
H(i,j)=Aux1;
end
end






Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 1
Filtrado Espacial


Introduccin

El filtrado espacial es la operacin que se aplica a una imagen para resaltar o atenuar
detalles espaciales con el fin de mejorar la interpretacin visual o facilitar un procesamien-
to posterior, y constituye una de las tcnicas comprendidas dentro del realce de imge-
nes. Ejemplos comunes incluyen aplicar filtros para mejorar los detalles de bordes en im-
genes, o para reducir o eliminar patrones de ruido. El filtrado espacial es una operacin
"local" en procesamiento de imagen, en el sentido de que modifica el valor de cada pxel
de acuerdo con los valores de los pxeles que lo rodean; se trata de transformar los nive-
les de gris originales de tal forma que se parezcan o diferencien ms de los correspon-
dientes a los pxeles cercanos.


Frecuencia Espacial

La frecuencia espacial define la magnitud de cambios en el nivel de gris por unidad de
distancia en una determinada zona de la imagen. Las reas de la imagen con pequeos
cambios o con transiciones graduales en los valores de los datos se denominan reas de
bajas frecuencias. Las reas de grandes cambios o rpidas transiciones se conocen como
reas de altas frecuencias (por ejemplo, los bordes). As, los filtros espaciales se pueden
dividir en tres categoras:

- Filtros pasa bajos: enfatizan las bajas frecuencias, suavizando las imgenes y ate-
nuando ruidos. Se trata de asemejar el nivel de gris de cada pxel al nivel de gris de los p-
xeles vecinos, reduciendo la variabilidad espacial de la imagen. Ello produce un borronea-
do de los bordes, perdindose en nitidez visual de la imagen, pero ganando en homoge-
neidad.

- Filtros pasa altos: enfatizan las altas frecuencias, para mejorar o afilar las caracters-
ticas lineales como los lmites en general. Realizan por tanto el efecto contrario a los filtros
pasabajos, eliminando las bajas frecuencias.

- Filtro detectores de bordes: realizan otro tipo de operaciones con los pxeles, pero
siempre con el resultado de enfatizar los bordes que rodean a un objeto en una imagen,
para hacerlo ms fcil de analizar. Estos filtros tpicamente crean una imagen con fondo
gris y lneas blancas y negras rodeando los bordes de los objetos y caractersticas de la
imagen.


Convolucin Espacial

El filtrado espacial se realiza trasladando una matriz rectangular de dos dimensiones
(tambin llamada ventana, kernel, mscara o ncleo) que contiene "pesos" o ponderacio-
nes sobre la imagen en cada localizacin de pxel. Se evala el pxel central de la ventana
de acuerdo con los pxeles de alrededor y sus valores de ponderacin. Cuando un nuevo
valor es as calculado, se desplaza la ventana sobre el siguiente pxel, realizando la mis-
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 2
ma operacin. Este proceso de evaluar la vecindad ponderada del pxel se denomina
"convolucin bidimensional", y a la matriz de filtro se le conoce como "kernel de convolu-
cin".

En general, la convolucin de una imagen f de MxN con una mscara h de mxn est
dada por la siguiente expresin:




Por ejemplo, consideremos la mscara de convolu-
cin mostrada en la figura 1 y una imagen genrica re-
presentada por f. Dado que m=3 y n=3, a y b son iguales
a 1. Teniendo en cuenta todo lo anterior, la respuesta a
la mscara de convolucin dada, o sea, g(x,y), est da-
da por la expresin anterior. Luego, evaluando la res-
puesta para un punto cualquiera, por ejemplo, (5,4), ob-
tenemos lo siguiente:












Filtros Pasabajos

El resultado de aplicar un filtro pasabajos a una imagen es simplemente el promediado
de los pxeles contenidos en el vecindario (o entorno) de la mscara utilizada.

Si bien anteriormente se dieron los usos de los filtros pasabajos, generalmente se los
utiliza para atenuar los detalles irrelevantes en una imagen. Otra de las utilidades del filtro
pasabajos, aparte de las ms obvia que es la atenuacin del ruido, es el suavizado de los
falsos contornos producidos por una cuantizacin con un nmero insuficiente de niveles
de gris.

El procedimiento bsico del filtro pasabajos es reemplazar el valor de cada pxel en u-
na imagen por el promedio de los niveles de gris del vecindario definido por la mscara.

La figura 2 muestra dos mscaras (o ncleos) de 3x3. Usando la primera se obtiene el
promediado estndar de los pxeles abarcados por aquella. Se debe notar que, en lugar
de ser 1/9, los coeficientes de la mscara son todos 1s. Esto se hace as debido a que es
ms eficiente computacionalmente tener todos los coeficientes con el valor 1. Luego, la i-
magen completa se divide por 9 (o sea, por la suma de todos los coeficientes).

( , ) ( , ). ( , )
a b
i a j b
g x y f x i y j h i j
= =
= + +

2
1
,
2
1
=

=
n
b
m
a

= =
+ + =
1
1
1
1
) , ( ). 4 , 5 ( ) 4 , 5 (
i j
j i h i i f g
) 1 , 1 ( ). 5 , 6 ( ) 0 , 1 ( ). 4 , 6 ( ) 1 , 1 ( ). 3 , 6 ( ) 1 , 0 ( ). 5 , 5 ( ) 0 , 0 ( ). 4 , 5 (
) 1 , 0 ( ). 3 , 5 ( ) 1 , 1 ( ). 5 , 4 ( ) 0 , 1 ( ). 4 , 4 ( ) 1 , 1 ( ). 3 , 4 ( ) 4 , 5 (
h f h f h f h f h f
h f h f h f h f g
+ + + + +
+ + + + =
Figura 1: Mscara de
convolucin.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 3











La segunda mscara de la figura 2 produce un promedio ponderado. Como se puede
ver, los pxeles son multiplicados por diferentes coeficientes, dndoles as ms importan-
cia (peso) a algunos pxeles que a otros. En el caso particular de la mscara de la figura
2, el pxel del centro se multiplica por el valor ms alto, mientras que los dems pxeles
son pesados teniendo en cuenta la inversa de su distancia al centro. La razn de darle
ms importancia al pxel central y menos importancia a los pxeles ms alejados al centro,
radica en la necesidad de reducir el borroneado durante el proceso de suavizado. Como
se haca en el caso anterior, primero se multiplican los pxeles por los coeficientes de la
mscara, que son nmeros enteros potencias de 2 (mayor eficiencia, rapidez), y luego se
divide por la suma de todos los coeficientes de la mscara, o sea, 16.

En la figura 3 pueden verse los efectos del filtro espacial pasabajos, o suavizado. Te-
niendo en cuenta la imagen original, figura 3 (a), las figuras 3 (b) a 3 (f) son el resultado
de filtrar la imagen original utilizando ncleos cuadrados de n=3, 5, 9, 15 y 35, respectiva-
mente. Para la mscara de 3x3, notamos un leve borroneado general de la imagen, pero
los detalles que tienen aproximadamente el mismo tamao que el ncleo han sido afecta-
dos considerablemente. Para n=9, se ve un borroneado mucho mayor, y tambin que el
20% del crculo negro casi se confunde con el fondo, ilustrando as el efecto de mezclado
que el borroneado produce sobre aquellos objetos cuyos niveles de gris son parecidos a
los de sus vecinos. Otro efecto que se puede notar es la reduccin del ruido en los rectn-
gulos. Para n=15 y 35, se puede ver que el borroneado es excesivo. Este tipo de borrone-
ado se utiliza para eliminar los objetos pequeos en una imagen.

















Figura 2: Dos
mscaras de 3x3
para realizar un
filtrado pasabajos
(suavizado,
promediado)
a) b)
b) a)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 4



































Como ya lo mencionamos, una aplicacin importante de este tipo de filtrado es el bo-
rroneado de una imagen con el fin de obtener una presentacin burda de los objetos de
inters, de manera que la intensidad de los objetos pequeos se confunda con la del fon-
do y los objetos grandes sean fciles de detectar.

Por ltimo, presentaremos la implementacin general para filtrar una imagen de MxN
con una mscara de promedio ponderado de mxn (m y n impares):






donde el denominador es simplemente la suma de los coeficientes de la mscara y, por lo
tanto, una constante que slo debe calcularse una vez.


= =
= =
+ +
=
a
a i
b
b j
a
a i
b
b j
j i h
j i h j y i x f
y x g
) , (
) , ( ). , (
) , (
c) d)
Figura 3: a) Imagen original, 500x500 pxeles. (b) (f) Resultados de suavizar con
mscaras cuadradas de n=3, 5, 9, 15 y 35, respectivamente.
e) f)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 5
En el apndice se presentan algunos algoritmos en scripts de Matlab que realizan los
diferentes tipos de filtrado que se vern en este apunte.


Filtros estadsticos: filtro de mediana

Los filtros estadsticos son filtros espaciales no lineales cuya respuesta est basada en
ordenar los pxeles abarcados por una mscara y luego reemplazar el valor del pxel cen-
tral con el valor determinado por el resultado del ordenamiento. El ms conocido de estos
filtros es el filtro de mediana, el cual reemplaza el valor del pxel central por la mediana de
los niveles de gris del vecindario de ese pxel (el valor original del pxel es incluido en el
clculo de la mediana). Los filtros de mediana son muy usados debido a que, para ciertos
tipos de ruidos aleatorios, proveen una excelente reduccin de ruido y un borroneado con-
siderablemente menor que los filtros lineales de suavizado del mismo tamao. Los filtros
de mediana son particularmente efectivos cuando el ruido es del tipo impulso (tambin lla-
mado ruido sal y pimienta) debido a que aparece como puntos negros o blancos sobre-
puestos en la imagen.

La mediana, , de un conjunto de valores es aquella en la que la mitad de los valores
en el conjunto son menores o iguales que , y la otra mitad es mayor o igual a . Por e-
jemplo, si en una imagen tomamos un conjunto de pxeles de 3x3 con valores {1, 9, 5, 0,
8, 7, 1, 2, 4} la mediana para este caso ser el valor 4, ya que la mitad de este conjunto
es menor (o igual) y la otra mitad es mayor (o igual) a ste: {0, 1, 1, 2, 4, 5, 7, 8, 9}.

El procedimiento general para realizar el filtro de mediana en cualquier punto consiste
en ordenar los valores de dicho pxel y los de su vecindario, determinar la mediana, y a-
signar ste ltimo valor al pxel en cuestin. Para un vecindario de 3x3, la mediana es el
5
to
valor ms grande; para uno de 5x5 es el 13
mo
valor ms grande, y as. Cuando algunos
valores en un vecindario son iguales, stos se ven agrupados. Por ejemplo, supongamos
que un vecindario de 3x3 tiene los valores {10, 20, 20, 20, 15, 20, 20, 25, 100}. Ordenan-
do este conjunto nos queda {10, 15, 20, 20, 20, 20, 20, 25, 100}, de donde se ve que la
mediana es 20. As, la principal funcin de los filtros de mediana es hacer que los puntos
con niveles de gris distintos sean ms parecidos a los de su vecindario.

En la figura 4 puede verse los efectos que produce el filtro de mediana en una imagen
contaminada con ruido sal y pimienta.














Figura 4: a) Imagen con ruido sal y pimienta. b) Filtrado de (a) con un filtro de suavizado de
3x3. c) Reduccin de ruido con un filtro de mediana de 3x3.
a) b) c)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 6
La figura 4 (b) es el resultado de promediar la imagen original, figura 4 (a), con una
mscara de 3x3, mientras que la 4 (c) es la consecuencia de filtrar la original con un filtro
de mediana de 3x3. Se puede ver claramente que el filtro de mediana es ms efectivo a la
hora de remover ruido sal y pimienta que los filtros de promediado. No obstante, el precio
que se paga es un borroneado considerable.



Filtros Pasaaltos

El objetivo principal de estos filtros es resaltar los detalles delicados de una imagen
(por ejemplo, los bordes) o realzar los detalles de una imagen borroneada.

Anteriormente, vimos que el suavizado de una imagen, en el dominio espacial, se lo-
graba promediando el vecindario de cada pxel. Dado que el promediado es anlogo a la
integracin, es lgico pensar que en el proceso de filtrado con un pasaaltos se realicen o-
peraciones de diferenciacin espacial. Fundamentalmente, la magnitud de la respuesta de
un operador derivada es proporcional al grado de discontinuidad de la imagen en el punto
en donde este operador est siendo aplicado. Por esta razn, la diferenciacin de una i-
magen realza o enfatiza los bordes y otras discontinuidades tales como el ruido y atena
aquellas reas cuyos niveles de gris varan lentamente.

Los filtros pasaaltos que estudiaremos aqu estn basados en la primer y segunda de-
rivada. Las derivadas de una funcin discreta se definen en trminos de diferencias. Exis-
ten muchas maneras de definir estas diferencias. Sin embargo, existen requerimientos
que debe cumplir cualquier definicin de aqullas. La primer derivada debe ser:
- cero en las zonas que tienen un nivel de gris constante;
- distinta de cero ante un cambio del tipo escaln o rampa en el nivel de gris;
- y distinta de cero en toda la zona que tiene un cambio del tipo rampa;
Similarmente, cualquier definicin de segunda derivada debe ser:
- cero en zonas con nivel de gris constante;
- distinta de cero al principio o al final de un cambio del tipo escaln o rampa;
- y debe ser cero en toda la zona que tiene un cambio del tipo rampa con pendiente
constante.

Las definiciones bsicas para la primer y segunda derivada de una funcin bidimensio-
nal discreta con respecto a x y a y son las siguientes:







Como ya lo hemos discutido, los bordes en una imagen estn relacionados con los
cambios en el nivel de gris, o sea, con las altas frecuencias. A continuacin se desarrolla-
rn diferentes mtodos utilizados para la deteccin de lneas y bordes en general; mto-
dos asociados con la primer derivada, el gradiente, y mtodos asociados con la segunda
derivada, el laplaciano.

) , ( ) , 1 ( y x f y x f
dx
df
+ = ) , ( 2 ) , 1 ( ) , 1 (
2
2
y x f y x f y x f
dx
f d
+ + =
) , ( ) 1 , ( y x f y x f
dy
df
+ = ) , ( 2 ) 1 , ( ) 1 , (
2
2
y x f y x f y x f
dy
f d
+ + =
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 7
Deteccin de lneas

Consideremos las mscaras de la figura 5. Si convolucionamos la primer mscara con
una imagen, la respuesta ser mayor para lneas del ancho de un pxel orientadas hori-
zontalmente. Siempre que el fondo sea uniforme, la respuesta ser mxima cuando la l-
nea pase a lo largo de la segunda fila de la mscara. La segunda mscara de la figura 5
responder mejor a lneas orientadas a 45; la tercera mscara a lneas verticales; y la l-
tima a lneas orientadas a -45. Estas direcciones se pueden establecer observando que
para la direccin de inters las mscaras presentan valores mayores que para otras posi-
bles direcciones. Si denotamos con R
1
, R
2
, R
3
y R
4
las respuestas de las cuatro mscaras
de la figura 5 para un pxel en particular, entonces si se cumple que |R
i
|>|R
j
| con ji, ser
ms probable que dicho pxel est asociado a la direccin correspondiente a la mscara i.











Deteccin de bordes

Operador Gradiente.

El gradiente de una imagen f(x,y) en la posicin (x,y) viene dado por el vector






El vector gradiente siempre apunta en la direccin de la mxima variacin de la ima-
gen f en el punto (x,y). En la deteccin de bordes es muy importante la magnitud de este
vector, denominado simplemente como gradiente de la imagen, denotado por f y dado
por


Esta cantidad representa la variacin de la imagen f(x,y) por unidad de distancia en la
direccin del vector f. En general, el gradiente se suele aproximar mediante la expresin


que es mucho ms simple de implementar en la prctica. La direccin del vector gradiente
tambin es una cantidad importante. Sea (x,y) el ngulo del vector f en el punto (x,y).
Entonces se tiene que



Figura 5:
Mscaras de
lnea
(
(
(

=
(

=
x
f
x
f
f
f
f
y
x
2 2
|| ||
y x
f f f + =
| | | |
y x
f f f +
) , (
) , (
arctan ) , (
y x f
y x f
y x
x
y
=
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 8
donde los ngulos se miden con respecto al eje de abscisas.

El clculo del gradiente se basa en obtener las derivadas parciales para cada pxel.
Las derivadas se pueden implementar digitalmente de varias formas. En la figura 6 se
pueden ver los operadores de Robert, Prewitt, Sobel y Frei-Chen para determinar las
derivadas parciales. Sin embargo, los operadores de Sobel y de Frei-Chen tienen la ven-
taja de que proporcionan un suavizado adems del efecto de derivacin. Ya que la deriva-
cin acenta el ruido, el efecto de suavizado es particularmente interesante, puesto que e-
limina parte del ruido. El requisito bsico de un operador de derivacin es que, como ya
habamos dicho, la suma de los coeficientes de la mscara sea cero.





















Laplaciano.

El Laplaciano de una imagen I(x,y) es una derivada de segundo orden definida por




En general, se suele tomar el valor negativo del Laplaciano. Al igual que en el caso del
gradiente se puede implementar en forma digital de varias formas.

Puesto que el Laplaciano es un operador de derivacin, la suma de los coeficientes
debe ser cero. Adems, el coeficiente asociado con el pxel central debe ser positivo y to-
dos los dems coeficientes negativos o cero, o viceversa.

En la figura 7 (c) podemos ver una mscara para el Laplaciano. En este caso, la ex-
presin para determinar el Laplaciano viene dada por



Figura 6: Operadores de derivacin: (a) de Roberts, (b) de Prewitt,
(c) de Sobel, y (d) de Frei-Chen.
2
2
2
2
2
y
f
x
f
f

=
) , 1 ( ) 1 , ( ) 1 , ( ) , 1 ( ) , ( 4 y x f y x f y x f y x f y x f + +
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 9













Aunque el Laplaciano responde a transiciones en la intensidad de la imagen, se em-
plea en pocas ocasiones en la prctica. Debido a que es un operador de segunda deriva-
das es excesivamente sensible a la presencia de ruido. Adems, el Laplaciano da lugar a
bordes dobles y no permite determinar direcciones. En general, juega un papel secundario
en la deteccin de bordes para determinar si un pxel est en la zona clara o en la zona
oscura del borde a travs del signo del Laplaciano.

El Laplaciano se puede utilizar para realzar una imagen de la siguiente forma:





El clculo anterior se puede simplificar teniendo en cuenta que el Laplaciano es un o-
perador lineal. En lugar de sumar (o restar) la imagen original, f(x,y), con el Laplaciano de
esta, obtenido con alguna de las mscaras de la figura 7, se puede utilizar una mscara e-
quivalente que realice las dos operaciones en un solo paso. Por ejemplo, para realzar una
imagen, f(x,y), usando la mscara laplaciana 7 (a), las operaciones seran las siguientes:


O lo que es equivalente:


Por lo tanto, la operacin de realce se ve simplificada cuando se utiliza una mscara
que realice todas las operaciones. Para el ejemplo anterior, la mscara usada se muestra
en la figura 8 (a).

En la figura 8 se puede ver cmo se realza una imagen con el Laplaciano. Las figuras
8 (a) y 8 (b) muestran las dos mscaras que se usan generalmente. La figura 8 (c) corres-
ponde a la imagen original (filamento de tungsteno escaneado con un microscopio electr-
nico). Las figuras 8 (d) y 8 (e) son el resultado de filtrar la imagen original con las msca-
ras 8 (a) y 8 (b), respectivamente. Comparando la imagen original con las filtradas, nota-
mos que ambas mscaras producen un realce efectivo, pero la resultante de filtrar con la
mscara 8 (b) muestra mejor los bordes y las formas.

Los mismos resultados hubisemos obtenido de haber restado la imagen original con
el Laplaciano de sta (calculado con la mscara 7 (a) o 7 (b)).

+

=
) , ( ) , (
) , ( ) , (
) , (
2
2
y x f y x f
y x f y x f
y x g
si el coeficiente central de la mscara es negativo
si el coeficiente central de la mscara es positivo
)} 1 , ( ) 1 , ( ) , 1 ( ) , 1 ( ) , ( 4 { ) , ( ) , ( + + + + + + = y x f y x f y x f y x f y x f y x f y x g
)} 1 , ( ) 1 , ( ) , 1 ( ) , 1 ( { ) , ( 5 ) , ( + + + + + = y x f y x f y x f y x f y x f y x g
Figura 7: Mscaras utilizadas para implementar los diferentes Laplacianos.
a) b) c) d)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 10




































Filtros High-boost y Unsharp masking

Anteriormente, vimos cmo resaltar las altas frecuencias en una imagen para enfatizar
bordes y las formas. Para ello, utilizamos mscaras que realizaban operaciones de deriva-
cin. Ahora veremos dos tipos de filtros muy utilizados para el mismo fin pero que emple-
an otras operaciones.

Un procedimiento usado para agudizar las formas en una imagen es el unsharp mas-
king, que consiste en restar a la imagen original una versin promediada de sta (por
ejemplo, la imagen original filtrada con un pasabajos). Esto es,


Una generalizacin del unsharp masking es el denominado filtro high-boost que con-
siste en lo siguiente:
) , ( ) , ( ) , ( y x f y x f y x f
s
=
a)
b)
c)
Figura 8: (a) y (b) Mscaras laplacianas compuestas. c) Imagen original. (d) y (e) Resultado
de filtrar la imagen original con las mscaras (a) y (b), respectivamente.
d) e)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 11


donde A es mayor o igual a 1. La expresin anterior puede ser rescrita como


Cuando A es igual a 1, obtenemos una imagen filtrada con una pasaaltos, y cuando A
es mayor a 1, parte de la imagen original se aade al resultado del filtrado con pasaaltos,
lo que recupera parcialmente las componentes de bajas frecuencias perdidas en el proce-
so de filtrado con pasaaltos.

La ltima expresin del filtro high-boost es aplicable en general y no especifica cmo
obtener la imagen filtrada con un pasaaltos. Si para ello elegimos el Laplaciano, entonces
f
hb
(x,y) puede calcularse de la siguiente forma





El filtrado high-boost puede realizarse en un solo paso usando alguna de las mscaras
de la figura 9.












El filtrado high-boost se aplica principalmente cuando la imagen original es ms oscura
que la deseada. Variando el coeficiente A, generalmente se puede obtener un incremento
global del nivel de gris de la imagen. Esto se puede ver en la figura 10.















) , ( ) , ( . ) , ( y x f y x f A y x f
hb
=
) , ( ) , ( ). 1 ( ) , ( y x f y x f A y x f
s hb
+ =

+

=
) , ( ) , ( .
) , ( ) , ( .
2
2
y x f y x f A
y x f y x f A
f
hb
si el coeficiente central de la mscara laplaciana es negativo
si el coeficiente central de la mscara laplaciana es positivo
Figura 9: Mscaras
usadas para el
filtrado high-boost.
a) b)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 12




















La figura 10 (a) es una versin ms oscura de la imagen de la figura 8 (c). La figura 10
(b) muestra el Laplaciano calculado con la mscara 9 (b), con A=0. La figura 10 (c) se ob-
tuvo usando la mscara 9 (b) pero con A=1. Como era de esperar, se han resaltado las
altas frecuencias en la imagen original (o sea, los bordes y las formas), pero la imagen ob-
tenida sigue siendo tan oscura como la original. Por ltimo, la figura 10 (d) muestra el re-
sultado de emplear la mscara 9 (b) con A=1.7. Este resultado es mucho ms aceptable
ya que el nivel de gris promedio fue aumentado, haciendo a la imagen ms clara y natural.























Figura 10: a) Imagen original. b) Laplaciano de (a) calculado con la mscara 9 (b), usando
A=0. c) Imagen realzada con el Laplaciano usando para ello la mscara 9 (b), A=1. d) Lo
mismo que (c) pero usando A=1.7.
e) d)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 13
Apndice

A continuacin se presentarn algunos algoritmos utilizados para filtrar una imagen en
el dominio espacial.


A=double(imread('c:\MATLAB6p5\toolbox\images\imdemos\ic.tif','tif'));
[f,c]=size(A);

% Deteccin de bordes verticales
for i=2:f-1
for j=2:c-1
C(i,j)=abs([1 1 1]*A((i-1):(i+1),j-1)-[1 1 1]*A((i-1):(i+1),j+1));
end
end


% Promediado con mascara de 3x3
for i=2:f-1
for j=2:c-1
D(i,j)=sum(sum(A((i-1):(i+1),(j-1):(j+1))));
D(i,j)=D(i,j)/9;
end
end


% Laplaciano
for i=2:f-1
for j=2:c-1
E(I,j)=4*A(i,j)-A(i-1,j)-A(i,j-1)-A(i,j+1)-A(i+1,j);
end
end


Como vemos, existe ms de una forma de implementar un filtro en los scripts de
Matlab. Por supuesto que hay algunas que son ms eficientes que otras pero como des-
ventaja no son soportadas en otros lenguajes de programacin. Por ejemplo, la funcin
sum de Matlab est muy optimizada pero difcilmente est implementada en otro lengua-
je. Lo mismo sucede con el producto de matrices.

Ahora se va a presentar una funcin de Matlab que realiza la correlacin de una ima-
gen con una mscara dada, pero es aconsejable hacer antes algunos algoritmos de
filtrado de manera genrica y aceptable en cualquier lenguaje de programacin. La
funcin de la que hablamos es la que sigue:

B=filter2(N,A,same);

donde N representa el ncleo o mscara y A la imagen que se desea filtrar. El parmetro
same se utiliza para que la funcin devuelva la parte central de la correlacin (que es del
mismo tamao que la imagen A).

Por ejemplo, para promediar una imagen con un ncleo de 3x3 se hace lo siguiente:
Np=1/9*ones(3);
Ap=filter2(N,A,same);

Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Filtrado Espacial 14
Para detectar bordes horizontales, la mscara es la que sigue (operador de Prewitt):
Nh=[1 1 1;0 0 0;-1 -1 -1];

Laplaciano:
Ng=[0 1 0;1 4 1;0 1 0];

Ng=[1 1 1;1 8 1;1 1 1];


Por ltimo, se presentarn dos formas de implementar el filtro de mediana. Primero, to-
memos una imagen cualquiera y agregumosle ruido del tipo sal y pimienta:

A=double(imread('circuit.tif','tif'));
[f,c]=size(A);

Ar=A;
for i=1:f*c
if rand<0.05
Ar(i)=0;
end
if rand>0.95
Ar(i)=255;
end
end

Veamos ahora una forma de aplicar el filtro de mediana con una mscara de 3x3:

F=zeros(size(A));
for i=2:f-1
for j=2:c-1
F(i,j)=median([Ar(i-1,(j-1):(j+1)) Ar(i,(j-1):(j+1)) Ar(i+1,(j-1):(j+1))]);
end
end

El algoritmo anterior simplemente forma un vector concatenando 3 filas de 3 elemen-
tos cada una, que corresponden a una ventana de 3x3 de la matriz Ar, y luego obtiene la
mediana de ese vector por medio de la funcin de Matlab median. Como no poda ser de
otra manera, Matlab tambin tiene una funcin que aplica el filtro de mediana a una ima-
gen cualquiera para un tamao de ventana dado. Es la siguiente:

Fmat=medfilt2(Ar,[3 3]);

Donde el vector [3 3] indica que la ventana deseada es de 3x3. Comparemos los resul-
tados:

figure, imshow(uint8(A))
figure, imshow(uint8(Ar))
figure, imshow(uint8(F))
figure, imshow(uint8(Fmat))


Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 1
Filtrado en el Dominio de la Frecuencia

En el apunte de Filtrado Espacial se presentaron las diferentes tcnicas usadas ge-
neralmente para el realce de una imagen en el dominio espacial. Ahora afrontaremos el
problema desde el dominio de la frecuencia, ms precisamente, con la transformada de
Fourier.


Introduccin a la Transformada de Fourier y al dominio de la frecuencia

La transformada de Fourier, F(u), de una sola variable, de una funcin continua, f(x),
se define como



De la misma forma, dada F(u), podemos obtener f(x) a travs de la transformada in-
versa de Fourier



Las expresiones anteriores pueden extenderse fcilmente a dos variables, u y v:




Y, similarmente, la transformada inversa queda definida como




Ahora bien, en el procesamiento de imgenes se trata con funciones discretas. Por es-
ta razn, presentamos la transformada de Fourier de una funcin discreta (TDF) de una
variable, f(x), con x=0, 1, ..., M-1:



Para u=0, 1, ..., M-1. Anlogamente, dada F(u), la transformada discreta de Fourier in-
versa est definida como



Para x=0, 1, ..., M-1. Cada uno de los M trminos de F(u) es llamado componente de
frecuencia de la transformada. Los valores de u en los que la F(u) est definida se llama
dominio de la frecuencia.

Una propiedad importante de la TDF (y su inversa) es que, a diferencia del par conti-
nuo, aqullas siempre existen. Lo mismo sucede con la TDF para una funcin de dos va-
riables. En algunos casos, es conveniente expresar la TDF, F(u), en coordenadas polares:

= dx e x f u F
x u j . . 2
). ( ) (

+

= du e u F x f
x u j . . 2
). ( ) (

dy dx e y x f v u F
y v x u j

+

+

+
=
) . . .( 2
). , ( ) , (

dv du e v u F y x f
y v x u j

+

+

+
=
) . . .( 2
). , ( ) , (

=
1
0
. . 2
). (
1
) (
M
x
M
x u j
e x f
M
u F

=
=
1
0
. . 2
). ( ) (
M
u
M
x u j
e u F x f

) (
. | ) ( | ) (
u j
e u F u F

=
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 2

donde


es llamado magnitud de la transformada de Fourier, y




se denomina fase o argumento de la transformada de Fourier. R(u) e I(u) son la parte real
y la imaginaria de F(u), respectivamente.



Transformada discreta de Fourier bidimensional

La transformada discreta de Fourier de una funcin (imagen) f(x,y) de tamao MxN es-
t dada por la siguiente expresin:

(1)


Similarmente, dada F(u,v), obtenemos f(x,y) a travs de la transformada de Fourier in-
versa, definida por la siguiente expresin:




Para x=0, 1, ..., M-1 e y=0,1, ..., N-1. Las variables u y v son las variables transforma-
das o de frecuencia, y x e y son las variables espaciales o de imagen. Como en la seccin
anterior, definimos el espectro de Fourier, la fase y la magnitud:




donde R(u,v) e I(u,v) son la parte real y la imaginaria de F(u,v), respectivamente.

En la prctica es comn multiplicar a funcin f(x,y) (imagen) por (-1)
x+y
antes de calcu-
lar la transformada de Fourier. Debido a las propiedades de las exponenciales se puede
demostrar que
(2)

donde TDF( ) representa la transformada discreta de Fourier. Esta expresin coloca al o-
rigen de la TDF de f(x,y).(-1)
x+y
[o sea, F(0,0)] en u=M/2 y v=N/2. En otras palabras, mul-
tiplicando f(x,y) por (-1)
x+y
se traslada el origen de F(u,v) a las coordenadas (M/2,N/2), las
cuales coinciden con el centro del rea de MxN ocupada por la transformada discreta de
Fourier bidimensional.

El valor de la transformada en (u,v)=(0,0) est dado por la ecuacin (1),

) ( ) ( | ) ( |
2 2
u I u R u F + =
(

=

) (
) (
tan ) (
1
u R
u I
u

=
(

+
=
1
0
1
0
. .
. 2
). , (
.
1
) , (
M
x
N
y
N
y v
M
x u
j
e y x f
N M
v u F

=
(

+
=
1
0
1
0
. .
. 2
). , ( ) , (
M
u
N
v
N
y v
M
x u
j
e v u F y x f

) , ( ) , ( | ) , ( |
2 2
v u I v u R v u F + =
(

=

) , (
) , (
tan ) , (
1
v u R
v u I
v u
) 2 / , 2 / ( ) , }( ) 1 ).( , ( { N v M u F v u y x f TDF
y x
=
+
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 3

(3)

de la cual vemos que es el promediado de f(x,y). En otras palabras, si f(x,y) es una ima-
gen, el valor de la transformada en el origen es promediado de los niveles de gris de la i-
magen. Dado que ambas frecuencias son cero en el origen, F(0,0) es llamado a veces
componente continua (dc) del espectro.

Si f(x,y) es real, es fcil demostrar que su TDF es hermtica y que la magnitud de sta
es simtrica.

La figura 1 (a) muestra un rectngulo blanco de 20x40 pxeles sobre un fondo negro
de 512x512. La imagen fue multiplicada por (-1)
x+y
antes de aplicarle la TDF de manera
que la frecuencia cero quede en el centro del espectro (figura 1 (b)). Antes de mostrar la
TDF, se le aplic una transformacin logartmica, F(u,v)=c*log(1+F(u,v)), para realzar el
detalle en los niveles de gris.


























Algunas deducciones bsicas del dominio de la frecuencia

Como la frecuencia est directamente relacionada con la velocidad de los cambios en
el nivel de gris, es fcil asociar intuitivamente las frecuencias en la TDF con patrones en
las variaciones de la intensidad del nivel de gris. Como mencionamos, la componente de
frecuencia de variacin ms lenta (u=v=0) corresponde al promediado de los niveles de
gris en la imagen. A medida que nos alejamos del origen de la transformada, la frecuencia

=
=
1
0
1
0
) , (
.
1
) 0 , 0 (
M
x
N
y
y x f
N M
F
Figura 1: a) Imagen de un rectngulo de 20x40 sobre un fondo negro. b) Espectro
de Fourier centrado (con la aplicacin de una transformacin logartmica).
a) b)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 4
de las componentes va aumentando correspondiendo a variaciones en la intensidad cada
vez ms rpidas.


Procedimiento para filtrar en el dominio de la frecuencia

Para filtrar en el dominio de la frecuencia se deben seguir los siguientes pasos:

i) Multiplicar la imagen de entrada por (-1)
x+y
para centrar la transformada, como
lo indica la ecuacin (2).
ii) Calcular la TDF de la imagen, F(u,v), mediante la ecuacin (1).
iii) Multiplicar F(u,v) por una funcin H(u,v) que acte como filtro.
iv) Calcular la TDF inversa del resultado hallado en (iii).
v) Obtener la parte real del resultado de (iv).
vi) Multiplicar el resultado de (v) por (-1)
x+y
.

La razn por la que H(u,v) acta como filtro es que esta funcin elimina o atena cier-
tas frecuencias en la transformada y deja a otras sin cambios.

Consideremos que f(x,y) es la imagen de entrada del paso (i) del procedimiento antes
descripto, y F(u,v) su transformada de Fourier. Entonces, la transformada de Fourier de la
imagen filtrada est dada por:

La multiplicacin de H y F involucra funciones bidimensionales, o sea, es el resultado
de multiplicar elemento a elemento dos matrices. En general, los elementos de F son n-
meros complejos pero los filtros (H(u,v)) que se usan frecuentemente son reales. Estos fil-
tros multiplican de igual forma la parte real y la imaginaria de los elementos de F y, por lo
tanto, slo modifican la magnitud de la transformada manteniendo invariable el argumen-
to.

La imagen filtrada se obtiene aplicando la transformada inversa de Fourier a G(u,v) y
multiplicando el resultado por (-1)
x+y
. Cuando la imagen f(x,y) y el filtro H(u,v) son reales,
la transformada inversa de Fourier de G(u,v) debera ser real, pero en la prctica no es a-
s ya que existen componentes complejos parsitos que aparecen como consecuencia del
error numrico computacional. Estos componentes deben ser ignorados (son desprecia-
bles pero pueden influir en clculos posteriores).



Algunos filtros bsicos

Filtro Notch

Supongamos que queremos poner a cero el nivel de gris promedio de una imagen. De
acuerdo con la ecuacin (3), el nivel de gris promedio de una imagen est dado por
F(0,0). Si hacemos que esta componente sea cero en el dominio de la frecuencia y calcu-
lamos la TDF inversa, entonces el nivel de gris promedio de la imagen resultante ser ce-
ro. Consideremos ahora que hemos centrado la transformada segn la ecuacin (2). El
procedimiento anterior de filtrado se realiza multiplicando F(u,v) por la siguiente funcin
filtro:
) , ( ). , ( ) , ( v u F v u H v u G =
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 5




Los filtros notch son herramientas excepcionalmente tiles cuando es posible identifi-
car efectos espaciales en la imagen causados por componentes de frecuencias especfi-
cos y localizados.

Como lo discutimos en el apunte de Filtrado Espacial, las frecuencias bajas en la
TDF son responsables del nivel de gris general de las reas suaves en una imagen, mien-
tras que las frecuencias altas son responsables de los detalles (bordes y ruido). Un filtro
que atena las altas frecuencias mientras que deja pasar las bajas lo denominbamos fil-
tro pasa-bajos. Un filtro que tiene las caractersticas opuestas a las del anterior lo denomi-
nbamos pasa-altos.

La figura 2 muestra los efectos del filtrado con un pasa-bajos y con un pasa-altos. Am-
bos filtros H(u,v), figura 2 (b) y 2 (d), son circularmente simtricos. Como era de esperar,
la imagen filtrada con el pasa-bajos de la figura 2 (b) que se exhibe en 2 (c) se ve que es-
t suavizada o borroneada con respecto a la original de la figura 2 (a). De igual forma, la i-
magen filtrada con el pasa-altos de la figura 2 (d) que se exhibe en 2 (e) muestra muy po-
ca variacin suave de nivel de gris que la original (F(0,0) fue forzada a cero) pero con ma-
yor detalle en los bordes y las formas.




























=
=
) 2 / , 2 / ( ) , ( 1
) 2 / , 2 / ( ) , ( 0
) , (
N M v u
N M v u
v u H
Figura 2: a) Imagen original.
b) Filtro pasa-bajos
bidimensional (espectro
centrado). c) Resultado de
filtrar la imagen (a) con el
pasa-bajos (b). d) Filtro pasa-
altos bidimensional (espectro
centrado). e) Resultado de
filtrar la imagen (a) con el
pasa-altos (d).
a)
b)
c)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 6



















Correspondencia entre el filtrado en el dominio del espacio y de la frecuencia
Teorema de la convolucin

En el apunte de Filtrado Espacial presentamos una expresin que utilizaramos para
calcular la convolucin entre una imagen f(x,y) de MxN y una mscara de h(x,y) de mxn.
Es la siguiente:




Ahora presentaremos la expresin ms formal para la convolucin discreta entre dos
funciones f(x,y) y h(x,y) de tamao MxN denotada por f(x,y) h(x,y):




Con la excepcin de los lmites de la sumatoria, el signo menos y la constante, esta
expresin es similar a la dada en el apunte anterior. En particular, el signo menos lo que
hace es reflejar f o h sobre su origen; es algo inherente en la definicin de convolucin.

Si F(u,v) y H(u,v) denotan la TDF de f(x,y) y h(x,y), respectivamente, una parte del
teorema de la convolucin establece que la convolucin f(x,y) h(x,y) y el producto
F(u,v)H(u,v) son un par transformado de Fourier, esto es


O sea que la convolucin espacial de f(x,y) con h(x,y) puede obtenerse calculando la
TDF inversa del producto F(u,v)H(u,v). La otra parte del teorema establece que el produc-
to f(x,y)h(x,y) y la convolucin F(u,v) H(u,v) constituyen tambin un par transformado de
Fourier, esto es,


d)
e)
( , ) ( , ). ( , )
a b
i a j b
g x y f x i y j h i j
= =
= + +

2
1
,
2
1
=

=
n
b
m
a


=

=
= =
1
0
1
0
1
0
1
0
) , ( ). , (
.
1
) , ( ). , (
.
1
) , ( ) , (
M
m
N
n
M
m
N
n
n y m x h y x f
N M
n m h n y m x f
N M
y x h y x f
) , ( ) , ( ) , ( ) , ( v u H v u F y x h y x f
) , ( ) , ( ) , ( ) , ( v u H v u F y x h y x f
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 7
Filtros Ideales

Pasa-bajos

El filtro pasa-bajos ms simple que podemos imaginar es aquel que elimina todas las
componentes de alta frecuencia de la transformada de Fourier que se encuentren a una
distancia D
0
del origen del espectro (centrado). Este filtro est dado por




donde D
0
es un nmero no negativo (a veces llamado frecuencia de corte) y D(u,v) es la
distancia del punto (u,v) al centro del espectro. Debido a que, como mencionamos ante-
riormente en este apunte, es ms prctico trabajar con un espectro centrado (la frecuen-
cia cero de la TDF en el centro), el centro del espectro est dado por (u,v)=(M/2,N/2).

El nombre de filtro ideal se debe a que todas las frecuencias que se encuentran en el
interior del crculo de radio D
0
pasan sin atenuacin mientras que las que se encuentran
fuera del crculo son completamente atenuadas. Como se sabe, los filtros ideales no pue-
den realizarse fsicamente mediante componentes electrnicos, pero s pueden ser imple-
mentados en una computadora.


Pasa-altos

El filtro pasa-altos ideal es el opuesto al pasa-bajos ideal en el sentido de que el prime-
ro fuerza a cero todas aquellas frecuencias interiores al crculo de radio D
0
mientras deja
pasar sin atenuacin a aquellas que se encuentren afuera. Su definicin es la siguiente:




Los filtros ideales tienen caractersticas que generalmente son contraproducentes. Un
ejemplo de esto son las oscilaciones indeseadas que aparecen en la imagen filtrada. Es-
tos efectos son conocidos como ringing en el idioma ingls. La figura 3 ilustra lo comen-
tado en este prrafo.













>

=
0
0
) , ( 0
) , ( 1
) , (
D v u D
D v u D
v u H
2 2
) 2 / ( ) 2 / ( ) , ( N v M u v u D + =

>

=
0
0
) , ( 1
) , ( 0
) , (
D v u D
D v u D
v u H
2 2
) 2 / ( ) 2 / ( ) , ( N v M u v u D + =
Figura 3: a) Original.
b) Resultado de filtrar
la imagen original con
un pasa-bajos ideal
con D
0
= 30. Aqu se
puede ver el efecto
conocido como
ringing
(oscilaciones).
a)
b)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 8
Filtro Butterworth

Pasa-bajos

La funcin de transferencia de un filtro Butterworth pasa-bajos de orden n, y con una
frecuencia de corte a una distancia D
0
del origen, est definida por





En la figura 4 (a) se puede ver la forma de un filtro Butterworth pasa-bajos, en la 4 (b)
se muestra al filtro como una imagen, mientras que en la 4 (c) se presenta el perfil del fil-
tro Butterworth para distintos n.















A diferencia del filtro ideal pasa-bajos, la funcin de transferencia del filtro Butterworth
no tiene una discontinuidad evidente que establezca una frecuencia de corte bien determi-
nada. Para aquellos filtros que tienen una funcin transferencia continua (o suavizada) es
comn definir una frecuencia de corte en un punto tal que H(u,v) est por debajo de una
cierta fraccin de su mximo. En el caso del filtro Butterworth, H(u,v)=0.5 (50% de su
mximo valor, o sea, 1) cuando D(u,v)=D
0
.

Para n=1, el filtro Butterworth no presenta oscilaciones; para n=2, las oscilaciones son
casi imperceptibles; mientras que para n>2, los filtros Butterworth presentan oscilaciones
indeseadas Si bien se utilizan diferentes n para el clculo del filtro Butterworth, el de se-
gundo orden (n=2) es el que generalmente se elige ya que tiene un buen compromiso en-
tre un filtrado pasa-bajos efectivo y oscilaciones de intensidad aceptable.


Pasa-altos

La funcin de transferencia de un filtro Butterworth pasa-altos de orden n, y con una
frecuencia de corte a una distancia D
0
del origen, est definida por



n
D
v u D
v u H
. 2
0
) , (
1
1
) , (
(

+
= 2 2
) 2 / ( ) 2 / ( ) , ( N v M u v u D + =
Figura 4: a) Perspectiva de un Butterworth pasa-bajos. b) El filtro mostrado como una imagen.
c) Perfil del filtro para distintos n.
c) a) b)
n
v u D
D
v u H
. 2
0
) , (
1
1
) , (
(

+
=
2 2
) 2 / ( ) 2 / ( ) , ( N v M u v u D + =
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 9
Filtros basados en funciones Gaussianas

Este tipo de filtro es de particular importancia ya que su forma est fcilmente especifi-
cada y porque tanto su TDF como su TDF inversa son funciones Gaussianas reales.

Filtro Gaussiano Pasa-bajos

La forma de este filtro est dada por:



donde D(u,v) es la distancia al origen del punto (u,v) (asumiendo que se ha centrado la
transformada). Como vemos, este tipo de filtro tiene su mximo en (0,0) que es 1, y luego
su valor comienza a disminuir segn la funcin Gaussiana cuya dispersin (o apertura)
est dada por la constante . Una expresin ms familiar del filtro Gaussiano es aquella
en donde aparece la frecuencia de corte D
0
:



Cuando D(u,v)>D
0
, los valores del filtro estn por debajo del 60,7% de su mximo.

Otra de las particularidades del filtro Gaussiano es que la TDF inversa de este tipo de
filtro no presenta los efectos conocidos como ringing, algo que s suceda para el caso de
los filtros Butterworth (para n>1).


Filtro Gaussiano Pasa-altos

La funcin transferencia del filtro Gaussiano pasa-altos con frecuencia de corte ubica-
da a una distancia D
0
del origen est dada por la siguiente expresin:





Filtrado Homomrfico

Una imagen f(x,y) puede expresarse como el producto de la iluminacin y los compo-
nentes de reflectancia (la reflectancia es una funcin que depende de las caractersticas
de reflexin de un objeto, vale 0 para las superficies totalmente opacas y 1 para aquellas
que reflejan toda la luz que incide sobre ellas):


donde i(x,y) denota la iluminacin y r(x,y) la reflectancia.
El modelo iluminacin-reflectancia recin descripto puede usarse para desarrollar un pro-
cesamiento en el dominio de la frecuencia que mejore la apariencia de una imagen por
medio de la compresin del nivel de gris y del realce del contraste.

2 2
. 2 / ) , (
) , (
v u D
e v u H

=
2 2
) 2 / ( ) 2 / ( ) , ( N v M u v u D + =
2
0
2
. 2 / ) , (
) , (
D v u D
e v u H

=
2 2
) 2 / ( ) 2 / ( ) , ( N v M u v u D + =
2
0
2
. 2 / ) , (
1 ) , (
D v u D
e v u H

=
2 2
) 2 / ( ) 2 / ( ) , ( N v M u v u D + =
) , ( ). , ( ) , ( y x r y x i y x f =
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 10
La expresin anterior no se puede usar directamente para operar separadamente so-
bre los componentes de frecuencia de la iluminacin y la reflectancia debido a que la
transformada de Fourier de dos funciones no es separable. Es decir,


Supongamos, sin embargo, que definimos


Entonces


O

donde F
i
(u,v) y F
r
(u,v) son la transformada de Fourier de ln [i(x,y)] y ln [r(x,y)], respec-
tivamente.

Si filtramos Z(u,v) por medio de una funcin H(u,v), como lo venamos haciendo, en-
tonces


donde S(u,v) es la transformada de Fourier del resultado. En el dominio espacial,

(4)

donde TDFI representa la transformada (discreta) de Fourier inversa. Si ahora suponemos
que


la ecuacin (4) se puede expresar de la siguiente forma


Finalmente, dado que z(x,y) se defini tomando el logaritmo de la imagen original
f(x,y), la operacin inversa, o sea, la exponencial, nos dar como resultado la imagen re-
alzada (filtrada), g(x,y); esto es


donde


son la componente de iluminacin y reflectancia de la imagen resultante, respectivamente.

La componente de iluminacin de una imagen generalmente est caracterizada por
variaciones espaciales lentas, mientras que la componente de reflectancia tiende a variar
abruptamente, en particular, en las uniones de objetos dismiles. Estas caractersticas per-
miten asociar las bajas frecuencias de la transformada de Fourier del logaritmo de una i-
magen con la iluminacin y las altas frecuencias con la reflectancia. Aunque esta relacin
es una aproximacin, puede utilizarse como ventaja en el realce de imagen.

Con un filtro homomrfico se puede ganar mucho control sobre la componente de ilu-
minacin y reflectancia. Este control requiere la especificacin de un filtro H(u,v) que afec-
)} , ( { )}. , ( { )} , ( { y x r TDF y x i TDF y x f TDF
| | | | | | ) , ( ln ) , ( ln ) , ( ln ) , ( y x r y x i y x f y x z + = =
| | | | | |} ) , ( {ln } ) , ( {ln } ) , ( {ln )} , ( { y x r TDF y x i TDF y x f TDF y x z TDF + = =
) , ( ) , ( ) , ( v u F v u F v u Z
r i
+ =
) , ( ). , ( ) , ( ). , ( ) , ( ). , ( ) , ( v u F v u H v u F v u H v u Z v u H v u S
r i
+ = =
)} , ( ). , ( { )} , ( ). , ( { )} , ( { ) , ( v u F v u H TDFI v u F v u H TDFI v u S TDFI y x s
r i
+ = =
)} , ( ). , ( { ) , ( ' v u F v u H TDFI y x i
i
=
)} , ( ). , ( { ) , ( ' v u F v u H TDFI y x r
r
=
) , ( ' ) , ( ' ) , ( y x r y x i y x s + =
) , ( ). , ( . ) , (
0 0
) , ( ' ) , ( ' ) , (
y x r y x i e e e y x g
y x r y x i y x s
= = =
) , ( '
0
) , (
y x i
e y x i =
) , ( '
0
) , (
y x r
e y x r =
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 11
te las bajas y las altas frecuencias de diferente forma. La figura 5 muestra la seccin de
un filtro homomrfico. Si los parmetros
L
y
H
se eligen de manera que
L
<1 y
H
>1, el fil-
tro mostrado en la figura 5 tiende a disminuir la contribucin hecha por las bajas frecuen-
cias (iluminacin) y a aumentar la contribucin hecha por las altas frecuencias (reflectan-
cia). El resultado de esto es la compresin del rango dinmico y el realce del contraste.















La curva de la figura 5 puede aproximarse usando la expresin bsica de cualquiera
de los filtros pasa-altos presentados anteriormente. Por ejemplo, usando una forma lige-
ramente modificada del filtro Gaussiano dada por



donde D(u,v) es la distancia al origen de la transformada (centrada) y la constante c fue
introducida para controlar la pendiente del filtro en la transicin de
L
a
H
.
















Referencias

Digital Image Processing Second Edition, Rafael C. Gonzalez Richard E. Woods,
captulo 4

Figura 5: Perfil de un
filtro circularmente
simtrico. D(u,v) es
la distancia al origen
(transformada
centrada).
( )
L
D v u D c
L H
e v u H + =
) / ) , ( .(
2
0
2
1 ). ( ) , (
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 12
Apndice

A continuacin se presentarn algunos algoritmos hechos en scripts de Matlab para
procesar una imagen en el dominio de la frecuencia.

Comencemos mostrando cmo sera un algoritmo que calcule la transformada discreta
de Fourier. Para ello, usaremos una imagen de tamao chico dado que el clculo de la
TDF para las imgenes grandes puede llevar algunos minutos.

A=fix(255*rand(20));
[f,c]=size(A);

for u=1:f
for v=1:c
FA(u,v)=0;
for x=1:f
for y=1:c
FA(u,v)=FA(u,v) + A(x,y)*exp( -j*2*pi*(u*x/f + v*y/c) );
end
end
end
end
FA=fftshift(FA); % Colocamos la frecuencia cero en el centro del espectro

figure, mesh(abs(log(FA+1)))
title('Transformada Discreta de Fourier (algoritmo propio)')


Comparemos el resultado obtenido con el que nos brinda la funcin fft2 de Matlab:

FA_mat=fft2(A);
FA_mat=fftshift(FA_mat); % Colocamos la frecuencia cero en el centro del
% espectro
figure, mesh(abs(log(FA_mat+1)))
title('Transformada Discreta de Fourier (funcion de Matlab "fft2")')


Para centrar la TDF hemos utilizado la funcin de Matlab fftshift. Esta misma tarea se
podra realizar con un algoritmo propio, de la siguiente forma:

for i=1:f
for j=1:c
Aaux(i,j)=A(i,j)*(-1)^(i+j);
end
end

Los resultados seran los mismos.


Veamos, ahora, una de las maneras en que se puede proceder para filtrar una imagen
con un pasa-bajos ideal.

A=double(imread('circuit.tif','tif'));
[f,c]=size(A);

Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Filtrado en el dominio de la frecuencia 13
% Calculo la transformada discreta de Fourier (DFT)
DFT_A=fft2(A);

% Centro el espectro
DFT_A=fftshift(DFT_A);


% Construyo un filtro ideal pasabajos
D0=f/2/15;
PasabajosIdeal=zeros(f,c);
for i=1:f
for j=1:c
D=sqrt((i-f/2)^2+(j-c/2)^2);% Determino la distancia al centro del
% punto (i,j)
if D<D0
PasabajosIdeal(i,j)=1;
end
end
end

% Multiplico la transfomada de la imagen por el filtro ideal
DFT_A_filtrada=DFT_A.*PasabajosIdeal; % Multiplico elemento a elemento

% Aplico la DFT inversa
A_filtrada=ifft2(DFT_A_filtrada);

% Tomo el modulo para descartar cualquier residuo de tipo complejo
A_filtrada=abs(A_filtrada);


figure, imshow(uint8(A))
title('Imagen original')

figure, mesh(abs(log(DFT_A+1)))
title('Espectro de la imagen original')

figure, mesh(abs(log(DFT_A_filtrada+1)))
title('Espectro de la imagen filtrada')

figure, imshow(uint8(A_filtrada))
title('Imagen filtrada')

figure, imshow(PasabajosIdeal)
title('Filtro pasabajos ideal')





Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Segmentacin por Umbralizacin Mtodo de Otsu 1
Segmentacin por Umbralizacin

Mtodo de Otsu


Introduccin

La umbralizacin es una tcnica de segmentacin ampliamente utilizada en las aplica-
ciones industriales. Se emplea cuando hay una clara diferencia entre los objetos a extraer
respecto del fondo de la escena. Los principios que rigen son la similitud entre los pxeles
pertenecientes a un objeto y sus diferencias respecto al resto. Por tanto, la escena debe
caracterizarse por un fondo uniforme y por objetos parecidos.

Al aplicar un umbral, T, la imagen en escala de grises, f(x,y), quedar binarizada; eti-
quetando con 1 los pxeles correspondientes al objeto y con 0 aquellos que son del fon-
do. Por ejemplo, si los objetos son claros respecto del fondo, se aplicar:




En el caso de que los objetos sean oscuros respecto del fondo, la asignacin sera a la
inversa:




El umbral puede depender de f(x,y), de alguna propiedad local del pxel, p(x,y), y hasta
de su propia posicin:


Si el umbral slo depende de f(x,y) se dice que es un umbral global; en el caso de que
adems dependa de p(x,y), por ejemplo, el valor medio de los pxeles vecinos, el umbral
es denominado local; y si depende tambin de la posicin (x,y) del pxel, se denominar
dinmico.

La mayora de las tcnicas de umbralizacin se basan en estadsticas sobre el histo-
grama unidimensional (el que vimos hasta ahora) de una imagen. Tambin se utiliza la
matriz de co-ocurrencia de una imagen. Para localizar los umbrales se pueden usar pro-
cedimientos paramtricos y no paramtricos. En los paramtricos, la distribucin de los
niveles de gris de una clase de objeto lleva a encontrar los umbrales. En los procedimien-
tos no paramtricos, los umbrales se obtienen de forma ptima de acuerdo a algn crite-
rio. En particular, el mtodo de Otsu, que es el objetivo de este apunte, elige el umbral p-
timo maximizando la varianza entre clases (between-class variance) mediante una bs-
queda exhaustiva.

Si bien hay diferentes mtodos para hallar un umbral, la mayora de ellos no dan bue-
nos resultados cuando se trabaja con imgenes del mundo real debido a la presencia de
ruido, histogramas planos o una iluminacin inadecuada. Por el contrario, el mtodo de
Otsu fue uno de los mejores mtodos de seleccin de umbral para imgenes del mundo


>
=
T y x f
T y x f
y x g
) , ( 0
) , ( 1
) , (


<
=
T y x f
T y x f
y x g
) , ( 0
) , ( 1
) , (
) , ), , ( ), , ( ( y x y x p y x f T T =
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Segmentacin por Umbralizacin Mtodo de Otsu 2
real. Sin embargo, como anticipamos, este mtodo usa una bsqueda exhaustiva para e-
valuar el criterio para maximizar la varianza entre clases. A medida que el nmero de cla-
ses de una imagen aumenta, el mtodo de Otsu necesita mucho ms tiempo para selec-
cionar un umbral multinivel adecuado. Para determinar el umbral de una imagen eficiente-
mente, vamos a proponer una varianza entre clases modificada para el mtodo de Otsu.
Esta modificacin del mtodo disminuir considerablemente el tiempo de clculo.

La importancia del mtodo de Otsu radica en que es automtico, es decir, no necesita
supervisin humana ni informacin previa de la imagen antes de su procesamiento.



Breve descripcin del Mtodo de Otsu para un umbral ptimo

Una imagen es una funcin bidimensional de la intensidad del nivel de gris, y contiene
N pxeles cuyos niveles de gris se encuentran entre 1 y L. El nmero de pxeles con nivel
de gris i se denota como f
i
, y la probabilidad de ocurrencia del nivel de gris i en la imagen
est dada por
(1)

En el caso de la umbralizacin en dos niveles de una imagen (a veces llamada binari-
zacin), los pxeles son divididos en dos clases: C
1
, con niveles de gris [1, ...., t]; y C
2
, con
niveles de gris [t+1, ...., L]. Entonces, la distribucin de probabilidad de los niveles de gris
para las dos clases son:
(2)


(3)

donde



Tambin, la media para la clase C
1
y la clase C
2
es




Sea
T
la intensidad media de toda la imagen. Es fcil demostrar que



Usemos un ejemplo para tener bien claro lo visto hasta aqu. Supongamos un imagen
de N=100 pxeles con cuatro niveles de gris comprendidos en [1,4] (1 el negro, 4 el blan-
co) y supongamos tambin que el nmero de pxeles con nivel de gris 1 es 10; con nivel
de gris 2, 20; con nivel de gris 3, 30; y con nivel de gris 4, 40; es decir, f
1
=10, f
2
=20, f
3
=30,
y f
4
=40. Luego, p
1
=f
1
/N=0.1, p
2
= 0.2, p
3
= 0.3, y p
4
= 0.4. Entonces, para una umbralizacin
en dos niveles de esta imagen tomemos t=2 de manera que la clase C
1
consista en los to-
nos de gris 1 y 2, y la clase C
2
posea los tonos 3 y 4. De esta manera,
1
(t)=0.1+0.2=0.3 y
N
f
p
i
i
=
) (
,....,
) (
1 1
1
t
p
t
p
t

:
1
C
) (
,....,
) (
,
) (
2 2
2
2
1
t
p
t
p
t
p
L t t

+ +
:
2
C

=
=
t
i
i
t
p i
1 1
1
) (
.

+ =
=
L
t i
i
p t
1
2
) (

=
=
t
i
i
p t
1
1
) (

+ =
=
L
t i
i
t
p i
1 2
2
) (
.

1
2 1
= +
T
= +
2 2 1 1
. .
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Segmentacin por Umbralizacin Mtodo de Otsu 3

2
(t)=0.3+0.4=0.7, y se comprueba que
1
(t)+
2
(t)=1. Por ltimo, la media para la clase
C
1
y para la clase C
2
estar dada por:








y


Sigamos con el mtodo. Usando anlisis discriminante, Otsu defini la variancia entre
clases de una imagen umbralizada como

(4)

Para una umbralizacin de dos niveles, Otsu verific que el umbral ptimo t* se elige
de manera que
B
2
sea mxima; esto es

(5)


En el apndice se incluye un algoritmo que calcula un umbral ptimo usando el mtodo
de Otsu para luego poder binarizar correctamente una imagen.

El mtodo puede de Otsu extenderse fcilmente a mltiples umbrales. Asumiendo que
hay M-1 umbrales, {t
1
, t
2
, ..., t
M-1
}, los cuales dividen a la imagen en M clases: C
1
para [1,
..., t
1
], C
2
para [t
1
+1, ..., t
2
], ..., C
i
para [t
i-1
+1, ..., t
i
], ..., y C
M
para [t
M-1
, ..., L], los umbrales
ptimos {t
1
*, t
2
*, ..., t
M-1
*} se eligen maximizando
B
2
como sigue:

(6)




Donde,
(7)

Con


k
es conocido como momento acumulado de orden cero de la k-sima clase C
k
, y el
numerador de la ltima expresin es conocido como momento acumulado de primer orden
de la k-sima clase C
k
; esto es,


3 57 , 3 * 7 , 0 667 , 1 * 3 , 0 . .
2 2 1 1
+ = + =
T
667 , 1
3 , 0
2 , 0 * 2 1 , 0 * 1
) (
.
2
1 1
1

+
= =

= i
i
t
p i

57 . 3
7 , 0
4 , 0 * 4 3 , 0 * 3
) (
.
4
3 2
2

+
= =

= i
i
t
p i

2
2 2
2
1 1
2
) .( ) .(
T T B
+ =
)} ( { *
2
t Max t
B
t
=
L t 1
)} ,..., , ( { *} *,..., *, {
1 2 1
2
,..., ,
1 2 1
1 2 1

=
M B
t t t
M
t t t Max t t t
M

L t t
M
< < <
1 1
... 1
2
1
2
) .(
T k
M
k
k B
=

=
k
C i
i k
p

=
k
C i
k
i
k
p i

=
k
C i
i
p i k . ) (
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Segmentacin por Umbralizacin Mtodo de Otsu 4
Formulacin alternativa del mtodo de Otsu

Independientemente del nmero de clases que se consideren durante el proceso de
umbralizacin, la suma de las funciones de probabilidad acumulada de las M clases son
iguales a 1, y la media de la imagen es igual a la suma de las medias de las M clases
ponderadas por sus correspondientes probabilidades acumuladas; esto es,

(8) y (9)


Usando las expresiones (7) y (8), la varianza entre clases en la ecuacin (7) de la ima-
gen umbralizada puede rescribirse de la siguiente forma

(10)

Debido a que el segundo trmino en la expresin (10) depende de la eleccin de los
umbrales {t
1
, t
2
, ..., t
M-1
}, los umbrales ptimos {t
1
*, t
2
*, ..., t
M-1
*} pueden ser elegidos ma-
ximizando una varianza entre clase modificada (
B
)
2
, definida como la sumatoria de los
trminos del lado derecho de la expresin (10). En otras palabras, los valores de los um-
brales ptimos {t
1
*, t
2
*, ..., t
M-1
*} se eligen por

(11)



Donde,
(12)


De acuerdo al criterio de la expresin (6) para
B
2
y al de la expresin (11) para (
B
)
2
,
para encontrar los umbrales ptimos, el campo de bsqueda para el mximo
B
2
y para el
mximo (
B
)
2
es 1 t
1
< L-M+1, t
1
+1 t
2
< L-M+2, ..., y t
M-1
+1 t
M-1
< L-1, como se ilus-
tra en la figura 1. Esta bsqueda exhaustiva involucra (L-M+1)
M-1
combinaciones posibles.
Adems, comparando la expresin (12) con la (7), encontramos que la resta en la expre-
sin (7) no es necesaria. As, la expresin (12) es mejor que la expresin (7) ya que elimi-
na M.(L-M+1)
M-1
restas del clculo de los umbrales.












=
=
M
k
k
1
1

=
=
M
k
k k T
1
.
2 2
1
1 2 1
2
. ) ,..., , (
T k
M
k
k M B
t t t =

}} ,..., , { ) ' {( *} *,..., *, {


1 2 1
2
,..., ,
1 2 1
1 2 1

=
M B
t t t
M
t t t Max t t t
M

L t t
M
< < <
1 1
... 1
2
1
2
. ) ' (
k
M
k
k B


=
=
t
1
t
2
t
M-1
L-1
L-M+2
L-M+1
M-1
2
1
t
1
t
2
t
M-1
L 1
Figura 1: Campo
de bsqueda para
{t
1
, t
2
, ..., t
M-1
}.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Segmentacin por Umbralizacin Mtodo de Otsu 5





































Referencias

1) Nobuyuki Otsu, A threshold selection method from gray-level histogram, IEEE
Transactions on System Man Cybernetics, Vol. SMC-9, No. 1, 1979, pp. 62-66.

2) Ping-Sung Liao, Tse-Sheng Chen and Pau-Choo Chung, A Fast Algorithm for
Multilevel Thresholding, Journal of Information Science and Engineering 17, 713-727
(2001).

3) Digital Image Processing Second Edition, Rafael C. Gonzalez Richard E. Woods,
captulo 10.

Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Segmentacin por Umbralizacin Mtodo de Otsu 6
Apndice

A continuacin se mostrar un funcin hecha en un script de MatLab que calcula el um-
bral ptimo para binarizar una imagen utilizando el mtodo de Otsu desarrollado anterior-
mente.

function umbralOptimo = umbralOtsu(Imagen)
%
% umbralOptimo = umbralOtsu(Imagen)
% Esta funcion calcula el umbral optimo para binarizar una imagen mediante el
% Metodo de Otsu.
%
% Universidad Nacional de Quilmes
% Ingeniera en Automatizacin y Control Industrial
% Ctedra: Visin Artificial - Octubre de 2005


Imagen = fix(double(Imagen));
[f,c]=size(Imagen);


% Calculo de la distribucion de probabilidad de los niveles de gris
P=zeros(1,256);
for i=1:f*c
P(Imagen(i)+1) = P(Imagen(i)+1) + 1;
end
P = P / (f*c);


% Calculo del momento acumulado de orden cero y del de primer orden
omega = zeros(1,256);
omega(1) = P(1);
mu = zeros(1,256);
for i=2:256
omega(i) = omega(i-1) + P(i);
mu(i) = mu(i-1) + (i-1)*P(i);
end


% Calculo del umbral optimo segun Otsu
sigmaB2max = 0;
sigmaB2 = 0;
mut = mu(256); % Intensidad media total de la imagen
umbralOptimo = 0;

for t=1:256
omega1 = omega(t);
omega2 = 1 - omega1;
if omega1~=0 & omega2~=0
mu1 = mu(t) / omega1;
mu2 = (mut-mu(t)) / omega2;

sigmaB2 = omega1 * (mu1-mut)^2 + omega2 * (mu2 - mut)^2;
if sigmaB2 > sigmaB2max
sigmaB2max = sigmaB2;
umbralOptimo = t-1;
end
end
end
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Segmentacin por Umbralizacin Mtodo de Otsu 7

Comparemos ahora los resultados de binarizar una imagen con el mtodo de Otsu y
con un umbral arbitrario.

clear all, close all
A=double(imread('rice.tif','tif'));


















Binaricemos la imagen original usando la funcin anterior, umbralOtsu:
Botsu = A > umbralOtsu(A);

Binaricemos otra vez la imagen pero usando un umbral global arbitrario, por ejemplo,
110:
Bglobal = A > 110;

Agreguemos a la imagen original ruido gaussiano de media 0 y varianza 20:
r=20*randn(size(A));
Ar=fix(min(max(A+r,0),255));

















Figura 2: Imagen
original que se
desea binarizar.
Figura 3: Imagen con
ruido gaussiano de
media cero y
varianza 20 que se
desea binarizar.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Segmentacin por Umbralizacin Mtodo de Otsu 8
Binaricemos ahora la imagen con ruido gaussiano usando tanto el umbral dado por el
mtodo de Otsu como el umbral arbitrario usado antes:
Botsur = A > umbralOtsu(Ar);
Bglobalr = Ar > 110;

Finalmente, mostremos las imgenes binarias resultantes de los dos mtodos de binari-
zacin, para el caso de la imagen sin ruido, y con ruido gaussiano:
figure, subplot(1,2,1), imshow(Botsu)
title('Imagen binarizada con umbral Otsu')
subplot(1,2,2), imshow(Botsur)
title('Imagen con ruido binarizada con umbral Otsu')
figure, subplot(1,2,1), imshow(Bglobal)
title('Imagen binarizada con umbral arbitrario')
subplot(1,2,2), imshow(Bglobalr)
title('Imagen con ruido binarizada con umbral arbitrario')





































Figura 4: a) Imagen resultante de binarizar la original usando un umbral calculado con el mtodo
de Otsu. b) Imagen resultante de binarizar la imagen con ruido gaussiano mediante Otsu.
Figura 5: a) Imagen resultante de binarizar la original usando un umbral arbitrario. b) Imagen
resultante de binarizar la imagen con ruido gaussiano usando el mismo umbral arbitrario.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Segmentacin por Umbralizacin Mtodo de Otsu 9
Como se puede ver en la figura 4, la imagen sin ruido binarizada con el umbral calcu-
lado mediante el mtodo de Otsu es idntica a la imagen con ruido gaussiano binarizada
usando el mismo mtodo. Sin embargo, la imagen resultante de binarizar la imagen sin
ruido con el umbral arbitrario difiere en gran medida de la obtenida luego de binarizar la
imagen con ruido gaussiano con el mismo umbral arbitrario.

De esta manera, podemos comprobar la robustez o capacidad del mtodo de Otsu para
encontrar un umbral ptimo con el que se pueda binarizar correctamente una imagen con-
taminada con ruido gaussiano. Dado que no se puede comprobar en este apunte la efi-
ciencia y rapidez del mtodo para calcular el umbral ptimo, tendremos que confiar en el
gran uso que se hace de l en la industria a la hora de binarizar imgenes reales en tiem-
po real y que estn inmersas en todo tipo de perturbaciones.

Si bien hemos verificado mediante un simple ejemplo las ventajas del mtodo de Otsu
para hallar un umbral ptimo en una imagen con ruido gaussiano, se puede extender su
utilidad para aquellos casos en que la iluminacin no es uniforme o es en general inade-
cuada.

Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 1
Iluminacin para las aplicaciones de Visin Artificial

La iluminacin es el aspecto ms decisivo de cualquier aplicacin de visin artificial. Eli-
giendo la tcnica adecuada de iluminacin se puede lograr un aumento en la exactitud, en
la fiabilidad del sistema y en su tiempo de respuesta. Es un error muy serio y costoso asu-
mir que se puede compensar una iluminacin inadecuada con un algoritmo.

El desarrollo constante de nuevas tecnologas de visin artificial a permitido a tales sis-
temas ser utilizados en problemas como medicin, inspeccin y monitoreo de procesos en
la industria. La llegada de las computadoras rpidas, los integrados de procesamiento di-
gital de seales y los lenguajes de nivel ms alto han incrementado la capacidad de la vi-
sin artificial. Hoy en da, en la mayora de las grandes industrias existe un equipo de tra-
bajo que tiene una especializacin en las aplicaciones de visin artificial. Los avances en
el hardware, software y las cmaras de visin redujeron los costos y el tiempo del desa-
rrollo de la aplicacin. Sin embargo, an hay un rea que sigue siendo indefinida y poco
equipada: la iluminacin. La iluminacin es una problema nico en el desarrollo de la apli-
cacin de visin artificial.

El observador humano usa un amplio rango de seales, obtenidas a partir del color, la
perspectiva, el sombreado, y una vasta librera de experiencias individuales. La percep-
cin visual depende nicamente de la capacidad humana de realizar juicios. Sin embargo,
un sistema de visin artificial no tiene una experiencia de base de la cual tomar decisiones
mediante una comparacin. Todo debe estar especficamente definido. Problemas sim-
ples como encontrar un orificio o juzgar puntos finos, se vuelven una tarea complicada de
definiciones en la visin artificial. Para reducir el nmero de variables, el sistema de visin
debe estar provisto con la mejor imagen que sea posible. En un sistema de visin artificial,
la mejor imagen es aquella que tiene el mayor contraste donde las reas de inters se
destacan del fondo (background) intrascendente. La mejor imagen es aquella que facilita
la tarea del sistema de visin.

Muchas aplicaciones buenas han fallado por la falta de una iluminacin apropiada. Los
sistemas de iluminacin que trabajan correctamente en el laboratorio no siempre lo hacen
en la planta industrial donde la iluminacin fluctuante del ambiente causa distorsiones.

Aunque ha habido muchos progresos en los sistemas de iluminacin, todava queda
mucho por aprender. Hay gran cantidad de soluciones posibles de iluminacin para real-
zar una caracterstica especfica de un objeto, como tambin hay un gran nmero de apli-
caciones.

La iluminacin en las aplicaciones de visin artificial, como todas las tecnologas involu-
cradas, dependen del continuo avance tecnolgico para perfeccionar los sistemas que
mejoran la calidad de los productos fabricados en la actualidad.



Fundamentos de la iluminacin.

Existen reglas bien establecidas para la eleccin de un tipo de lente. Por el contrario,
son mucho menos las reglas establecidas para la eleccin de una buena iluminacin, an
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 2
cuando esta ltima es tan importante como la eleccin adecuada de la lente para obtener
imgenes utilizables. Para que una caracterstica aparezca en una imagen, la luz debe ve-
nir de la fuente de iluminacin, reflejarse en el objeto y ser recolectada por la lente (figura
1).

En nuestra experiencia diaria, usa-
mos la luz del ambiente para poder ver.
Como ya se mencion, en las aplicacio-
nes de visin artificial la luz del ambien-
te de trabajo es peligrosa debido a que
puede cambiar cuando menos lo espe-
ramos. Por esta razn, necesitamos
proveer de luz controlada de manera
que se acenten las caractersticas de
inters y se minimicen aquellas intras-
cendentes.

La ptica (lentes) del dispositivo utili-
zado para tomar las imgenes y la ilu-
minacin se disean mucho mejor to-
mndolos como un mismo sistema. El
que disea la iluminacin debe procurar
que todos los haces de luz reflejados
por el objeto sean tomados por la lente
como parte de la imagen. Al mismo
tiempo, debe evitar aquellos haces que
no sern parte de la imagen (por ejem-
plo, los rayos que caen fuera del campo
de visin de la lente). Estos rayos inter-
ferentes solo pueden contribuir a producir resplandor, lo que disminuye el contraste de la
imagen. A menos que la ptica y la iluminacin del sistema de visin sean diseadas con-
juntamente, la coordinacin de estas dos es difcil de realizar.



Tipos de Reflexin.

La luz es reflejada por los objetos de dos maneras llamadas reflexin especular y refle-
xin difusa. En la reflexin especular, cada rayo incidente se refleja en una nica direccin
(los rayos reflejados son paralelos). Una pista de estao en un circuito o un espejo exhi-
ben reflexin especular. Por otro lado, en la reflexin difusa los rayos incidentes son dis-
persados en un rango de ngulos salientes. Un pedazo de papel es un reflector difuso.

En realidad, los objetos exhiben todas las clases de conductas entre los extremos de la
reflexin especular y la difusa. Los rayos de luz reflejados por una superficie pulida de
metal tienen una componente direccional dominante (reflexin especular) pero que es di-
fundida parcialmente por irregularidades de la superficie (reflexin difusa). El papel pre-
senta algunas propiedades especulares, como se puede comprobar al leer con luz muy in-
tensa. Tambin hay que decir que existen muchos objetos cuyas partes reflejan de mane-
Figura 1
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 3
ra diferente. Por ejemplo, un conector elctrico posee pines brillantes (especular) de metal
y partes opacas (difusa) de plstico.
















Reflexiones Especulares.
Las reflexiones especulares son brillantes pero poco confiables. Son brillantes porque
la intensidad de la reflexin es comparable con la intensidad de la luz que proviene de la
fuente. En muchos casos, las reflexiones especulares saturan al sensor de la cmara. Las
reflexiones especulares no son confiables debido a que un pequeo cambio en el ngulo
entre la fuente de luz, el objeto y las lentes puede causar que la reflexin especular desa-
parezca completamente. A menos que estos ngulos estn bien controlados, es mejor e-
vitar la presencia de este tipo de reflexiones. El mejor mtodo para iluminar partes que
producen reflexiones especulares es la iluminacin difusa.

Reflexiones Difusas.
Las reflexiones difusas son tenues pero estables. La intensidad de la reflexin puede
ser de 10 a 1000 veces menor que la intensidad de la fuente de luz. La intensidad de la
luz reflejada cambia lentamente con el ngulo. Las superficies difusas pueden ser ilumi-
nadas correctamente usando fuentes de luz difusas como as tambin fuentes de luz pun-
tuales.



Tcnicas de iluminacin.


Iluminacin posterior (backlight).

La iluminacin posterior permite delinear el contorno de las piezas, minimiza la visibili-
dad de gabinetes traslcidos y permite visualizar perforaciones pasantes. Esta tcnica
brinda un contraste muy alto y es fcil de implementar. En las imgenes tomadas bajo es-
ta tcnica, el fondo (background) aparece uniformemente blanco y el objeto se visualiza
mediante se silueta.

Dentro de las tcnicas de iluminacin posterior se pueden encontrar la difusa y la direc-
cional. En la iluminacin posterior difusa (figura 4) los rayos de luz se transmiten en diver-
Figura 2: Reflexin Especular Figura 3: Reflexin Difusa
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 4
sos ngulos, como ya se mencion. En la iluminacin posterior direccional (figura 5), un
colimador hace que todos los rayos de luz se propaguen en direcciones paralelas.



















Aplicaciones tpicas incluyen la medicin de
las dimensiones exteriores, la ubicacin de los
puntos de sujecin (perforaciones para torni-
llos) y la medicin de la opacidad de materi-
ales traslcidos o de su espesor.











Iluminacin Frontal Oblicua y Direccional.

La direccin de la iluminacin, conocida como el ngulo de incidencia, es l ngulo for-
mado por el plano normal a la superficie y el rayo incidente. Cuando los haces de luz for-
man un ngulo de 20 grados con la superficie, se puede maximizar el contraste en objetos
con relieves de manera que los bordes aparezcan brillantes frente al fondo oscuro que for-
man las superficies planas del objeto. En la iluminacin frontal direccional, el ngulo entre
los rayos incidentes y la superficie es de 30, lo que reduce un poco el contraste pero in-
crementa la cantidad de informacin obtenible de las superficies planas.




Figura 4 Figura 5
Figura 6: Dispositivo comercial de
iluminacin posterior (backlight)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 5
















Entre los dispositivos comerciales se pueden encontrar los anillos y los domos. Los ani-
llos son adecuados para superficies planas y difusas. Estn disponibles en espectro blan-
co, rojo, IR, UV, azul, verde, iluminacin continua o pulsante, con lente difusor o no difu-
sor. Los domos producen una iluminacin difusa y uniforme. Se utilizan para iluminar su-
perficies reflectivas. Estn disponibles con luz continua o pulsante y fuentes conectadas
mediante fibra ptica.

















Iluminacin Frontal Axial (difusa).

Mediante esta tcnica se puede iluminar desde el mismo
eje de la cmara con luz uniforme, incluyendo el centro de
la imagen. Permite iluminar uniformemente superficies re-
flectivas, realza detalles grabados y crea contraste entre
superficies especulares y difusas / absorbentes.

El dispositivo comercial de la figura 10 enva luz median-
te el divisor de haces prcticamente a 90 grados. Provee i-
luminacin uniforme para superficies reflectivas planas. De
Figura 6: Iluminacin Frontal Oblicua Figura 7: Iluminacin Frontal Direccional
Figura 8: Anillo Figura 9: Anillo con difusor Figura 9: Domo
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 6
esta forma, las superficies reflectivas perpendiculares a la cmara se ven iluminadas,
mientras que aquellas que se encuentran a otros ngulos aparecen oscuras.
















Por entregar una mayor uniformidad, logra incrementar la precisin y repetibilidad del
sistema de visin.






























1) Matriz de leds de
alta luminosidad.
2) Filtros difusores.
3) Cristal
semireflectante.
4) Anclaje para
cuatro tornillos.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 7
Iluminacin de Da Nublado (cloudy day ilumination, CDI).

Suministra iluminacin difusa en la misma direccin que el eje de la cmara. Ha sido
diseada para las aplicaciones ms complejas y difciles con superficies especulares i-
rregulares que necesitan luz completamente uniforme .La CDI proporciona una completa
uniformidad, con un mximo de desviacin del 10% en el campo de visin.

CDI es el sistema ms perfecto de iluminacin difusa que existe, el efecto que se consi-
gue con este tipo de iluminacin es el de "Un Da Nublado". La CDI combina un sistema
ptico patentado con una esfera difusora para proporcionar un ambiente de iluminacin di-
fusa que no tiene comparacin en el mundo de la tecnologa de iluminacin. La figura 11
muestra un esquema tpico de CDI.
















La CDI ha sido diseado para aplicaciones criticas que estn basados en objetos con
superficies altamente especulares donde cualquier reflexin puede confundirse con un
defecto. Ejemplos de este tipo de aplicaciones incluyen: verificacin de discos compactos,
y la inspeccin de patrones en circuitos impresos o placas electrnicas. Los dispositivos
comerciales de CDI permiten inspeccionar productos incluso dentro de su envoltorio, tales
como blisters farmacuticos o chips de ordenador dentro de su envoltura transparente.
















Figura 12: Dispositivo de CDI
Figura 13: Ejemplo de las ventajas de la CDI
Figura 11: Dispositivo de CDI
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 8
Iluminacin de Campo Oscuro (dark field).

Se trata de luz directa de alta intensidad que se hace incidir sobre el objeto con un n-
gulo muy pequeo respecto a la superficie donde descansa (figura 14). De esta manera
conseguimos que sobre superficies que presentan hendiduras o elevaciones, stas inter-
fieran en la trayectoria de la luz producindose zonas brillantes.

Esta tcnica consiste en hileras de LEDs montadas a 75 o 90 con respecto al eje pti-
co. La iluminacin puede ser continua o pulsante (strobe).

Adems del modelo en anillo, tambin se fabrican con haces paralelos ajustables indi-
vidualmente.

La iluminacin de campo oscuro realza el contraste de los detalles superficiales tales
como grabados, marcas y defectos.


















Array de luces.

La luz producida por el array de luces llega direc-
tamente al objeto. Produce un gran contraste y re-
salta las texturas, relieves y fisuras del objeto ilumi-
nado debido a que cualquier relieve, por pequeo
que sea, produce una sombra muy definida.

El ngulo de incidencia de la luz respecto al pla-
no de iluminacin determinar el grado de resalte
de los relieves. Para ngulos muy pequeos res-
pecto a la horizontal, la luz producir sombras en
los relieves de la pieza.

Para ngulos cercanos a 90 grados respecto a la
horizontal, solo ser detectable la sombra en los
grandes relieves.
Figura 14: Esquema de iluminacin
de Campo Oscuro
Figura 15: Dispositivo comercial
Figura 16: Esquema de iluminacin
del array de luces
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 9
Se encuentran en el mercado en forma de fuente puntual (figura 17), cuadrada, rectan-
gular (figura 18), etc. Provee iluminacin econmica de uso general unidireccional. Puede
utilizarse para los mtodos de campo oscuro (creando sombras y reflexin especular) y
para los mtodos de campo claro (o brillante) en el caso de superficies difusas.



















Iluminacin de campo claro (o brillante).

La fuente de luz es uniforme y difusa (sua-
ve) e incide con un pequeo ngulo sobre la
superficie reflectante del objeto a inspeccionar.

La cmara se coloca con el mismo ngulo
de forma que obtenga una imagen reflejada de
la fuente de luz en la superficie el objeto ins-
peccionado. Una posible imperfeccin en el
mismo producir una mancha oscura en la i-
magen captada por la cmara. La mancha os-
cura que se apreciar en la cmara es debida
a la variacin del ngulo de reflexin que pro-
duce la imperfeccin con respecto al ngulo de
la luz incidente, perdindose el reflejo de la
fuente de iluminacin.

Indicado para detectar rayas, fisuras y deformaciones en objetos con superficies planas
y brillantes.

La tcnica de campo claro o brillante puede realizarse con un array de leds, como se
mencion anteriormente.




Figura 18: Array de leds comercial Figura 17: Spot (luz puntual)
Figura 20: Esquema del campo claro
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 10
Otro punto de vista de la eleccin del tipo de iluminacin.

Anteriormente, se presentaron las distintas formas de iluminar un objeto teniendo en
cuenta las tcnicas de iluminacin existentes para las diferentes aplicaciones. A continu-
acin, el enfoque estar puesto en los dispositivos comerciales que se utilizan en la actua-
lidad: Fibra ptica, Fluorescentes, LED y Lser. Cada uno de ellos tiene sus ventajas y
desventajas con respecto a los otros. Y dependiendo del tipo de aplicacin deber utilizar-
se uno u otro.

Hay cuatro factores que condiciona el tipo de iluminacin, que son: Intensidad lumnica,
Duracin, Flexibilidad de diseos y Precio. Los sistemas de iluminacin para aplicaciones
industriales pueden emitir luz de forma continua o de forma pulsada (estroboscpica).



Iluminacin por Fibra ptica.

La iluminacin por fibra ptica, es actualmente, la que puede proporcionar la luz ms
intensa de todos los tipos de iluminacin que se utilizan en visin artificial. La idea bsica
es conducir la luz procedente de una bombilla halgena, o de xenn, que se encuentra en
un fuente de iluminacin, a travs de un haz de fibras pticas que termina en un adapta-
dor especfico para cada tipo de aplicacin. Estos adaptadores pueden tener forma circu-
lar, lineal, puntual o de panel, y puede ser de distintos tamaos y dimensiones.

En los haces de fibra ptica hay cierta perdida de intensidad con relacin a la longitud o
distancia. Normalmente no se aconseja utilizar haces de fibra ptica de una longitud supe-
rior a 5 metros, ya que por una parte se pierde intensidad y por otra el precio se hace un
factor determinante. Una de las ventajas de la fibra ptica es que proporciona luz fra, y
por tanto es ideal en aplicaciones donde los sistemas que puedan emitir calor sean un in-
conveniente o tambin en entornos deflagrantes.

Las fuentes de iluminacin acostumbran a incorpo-
rar una bombilla halgena y generalmente incluyen
un estabilizador de corriente, con una fuente de ali-
mentacin para la lmpara halgena (150W) que se
aloja en un espacio donde se conecta el haz de fibra
ptica. La potencia de iluminacin de la lmpara hal-
gena se controla mediante un restato. La vida media
de las lmparas halgenas utilizadas con este tipo de
iluminacin oscila entre 1000 y 2000 horas.

Algunas fuentes de iluminacin incorporan control de intensidad va puerto serie RS-
232 de forma que se puede controlar desde un elemento externo como un PC.


Iluminacin por Fluorescente.

Los tubos fluorescentes se usan en muchas ocasiones en aplicaciones de visin artifi-
cial, aunque debido a su limitada variedad de formas, tambin es limitada su utilizacin.

Figura 21
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 11
Para las aplicaciones industriales es importante que los fluorescentes funcionen a alta
frecuencia al menos a 25kHz. En aplicaciones de visin no pueden utilizarse fluorescentes
estndar debido a su efecto de parpadeo, que dependiendo de la velocidad a la que la c-
mara funcione, puede verse reflejado en la intensidad de la imagen capturada.

Los tubos fluorescentes estndar no presentan
un balance de color uniforme, incorporando longitu-
des de onda mayoritariamente azules. Para aplica-
ciones de visin artificial es necesario utilizar fluo-
rescentes con espectro conocido. As es habitual u-
tilizar en segn qu aplicaciones, fluorescentes casi
monocromticos: ultravioletas, amarillos, verdes, a-
zules, etc.

Para aplicaciones donde se requiere una gran in-
tensidad de iluminacin y una larga longitud, se utili-
zan fluorescentes de apertura, en estos fluorescentes la luz se emite solo en una direc-
cin y con un ngulo muy estrecho, esto permite que la intensidad lumnica pueda ser
hasta 10 veces superior a la de un fluorescente estndar.

Las fuentes de alimentacin que proporcionan electricidad a los fluorescentes pueden
venir equipados con fotodiodos, que permiten controlar y regular automticamente la esta-
bilidad de la luz en todo momento, de forma que cuando la intensidad de la luz del fluores-
cente disminuye la fuente hace que aumente la potencia hasta devolver la intensidad an-
terior. La vida media de los tubos fluorescentes es algo superior a las 10000 horas.


Iluminacin por LED.

Para aplicaciones donde no se requiera una gran intensidad de iluminacin se puede
utilizar la iluminacin por LED (Light Emiting Diodes). Los LED proporcionan una intensi-
dad de iluminacin relativa a un coste muy interesante, y adems tienen una larga vida, a-
proximadamente 100.000 horas. Otra consideracin a tener en cuenta es que slo requie-
ren un cable de alimentacin y no un haz de fibra ptica que en ocasiones es muy delica-
do.

La intensidad de la iluminacin continua por LED no
es tan intensa como otros tipos de iluminacin pero ac-
tualmente se estn introduciendo los LED de alta inten-
sidad que empiezan a proporcionar una iluminacin
mucho ms potente. Si los LED se conectan a un sis-
tema estroboscpico se pueden alcanzar potencias lu-
mnicas muy similares a los de la luz halgena.

Recientemente se han introducido una nueva tecno-
loga de LED que se denomina chip-on-board y que
permite concentrar un gran nmero de LED en una superficie muy reducida y por tanto
aumentar an ms el poder lumnico.

Figura 22
Figura 23
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 12
Aunque los sistemas con LED ms comunes emiten luz de color rojo y se utilizan para
aplicaciones monocromas, actualmente se est extendiendo el uso de otros colores como
infrarrojo, verde, azul o blanco. El motivo por el que los LED rojos son los ms utilizados
en los sistemas de visin es porque son los ms fciles de encontrar y los ms baratos.
La vida media de los sistemas de LED pueden alcanzar hasta las 100000 horas.


Iluminacin por LSER.

La iluminacin mediante lser o luz estructurada se utiliza normalmente para resaltar o
determinar la tercera dimensin de un objeto. El mtodo utilizado es colocar la fuente de
luz lser en un ngulo conocido con respecto al objeto a iluminar y con respecto a la c-
mara. Viendo la distorsin de la luz puede interpretarse la profundidad de los objetos a
medir.

La luz estructurada se utiliza en muchas aplicaciones para obtener la percepcin de
profundidad y para inspecciones en 3D. Para hacerse una idea, se genera una lnea de
luz y se visualiza de forma oblicua. Las distorsiones en la lnea se traducen en variaciones
de altura. Y de aqu se puede desprender los cambios de profundidad o altura de un obje-
to. Por tanto se puede tambin determinar la falta o exceso de material, o bien se puede
llegar a hacer una reconstruccin en tres dimensiones del objeto.













Para obtener la mejor reconstruccin 3D se debe obtener un tamao de lnea lo ms
delgada posible sobre un fondo con muy baja o nula iluminacin.

La mayora de lsers que se utilizan en visin industrial usan lentes cilndricas para
convertir el punto lser en un patrn. Aunque a primera vista esta sistema parece correc-
to, la intensidad lumnica a lo largo presenta una forma gausiana, haciendo la deteccin
mucho ms difcil a nivel de software. Los sistemas de lser ms avanzados utilizan siste-
mas complejos no gausianos que proporcionan una iluminacin relativamente constante a
lo largo de toda la lnea, y que de esta forma facilitan las medidas en las aplicaciones de
visin.

Existen un gran nmero de patrones disponibles, entre los que se incluyen: una lnea,
mltiples lneas paralelas, patrones de puntos, crculos concntricos, mallas, y cruces,
que se utilizan dependiendo de la aplicacin. Los sistemas de luz estructurada lser est
disponible en distintos tipos de potencia y longitudes de onda. As mismo se han realizado
diseos especficos para aplicaciones concretas tales como: sistemas de lneas ultra fi-
Figura 24
Figura 25
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Tipos de iluminacin 13
nas, o sistemas lser conectados a fibra ptica para aplicaciones en ambientes con peli-
gro de deflagracin.

Dependiendo de la longitud de onda y de la potencia de los lser estos se clasifican se-
gn su grado de afectacin o peligrosidad. Los lser utilizados para visin artificial acos-
tumbran a corresponder a las Clases II, IIIA, o IIIB.









Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Noviembre de 2005

Efectos de la Iluminacin 1
Efectos de la Iluminacin

Este apunte tiene como objetivo ilustrar los efectos de una iluminacin inadecuada so-
bre las imgenes obtenidas bajo esas condiciones. Tambin se presenta una forma de
compensar los efectos de una iluminacin no uniforme sobre una imagen ya adquirida,
cuando se conoce de antemano las caractersticas de la fuente de iluminacin.


La formacin de una imagen I(x,y) se puede ver como

(1)

donde R(x,y) es la componente de reflectancia y L(x,y) la de iluminacin (se pueden en-
contrar ms detalles en la seccin correspondiente al Filtrado Homomrfico del apunte
Filtrado en el Dominio de la Frecuencia.pdf). Vamos a ver cul es el efecto de la
componente de iluminacin L(x,y) de cara a poder segmentar la imagen I(x,y).

Vamos a considerar la funcin de reflectancia R(x,y) generada con una computadora
que se expone en la figura 1 (a). El histograma de esta funcin, como se aprecia en la fi-
gura 1 (b), es claramente bimodal y la imagen se puede segmentar fcilmente mediante
un umbral situado en el valle del histograma. Consideramos ahora la funcin de ilumina-
cin L(x,y) generada por computadora de la figura 1 (c). Multiplicando las funciones de re-
flectancia e iluminacin obtenemos la imagen I(x,y) mostrada en la figura 1 (d). En el his-
tograma de la imagen I(x,y), figura 1 (e), el valle prcticamente ha desaparecido por com-
pleto, por lo que la segmentacin mediante un nico umbral es en este caso imposible.
Aunque en general casi nunca se dispone de la funcin de reflectancia aislada, este ejem-
plo muestra que la naturaleza reflectiva de los objetos y del fondo son tales que son fcil-
mente separables. Sin embargo, debido a una mala iluminacin, la imagen resultante es
muy difcil de segmentar.

La razn por la que el histograma de la reflectancia se ve modificado por la iluminacin
se puede explicar de forma sencilla. Vamos a tomar logaritmos en la ecuacin (1) obte-
niendo otra imagen

(2)














) , ( ). , ( ) , ( y x L y x R y x I =
) , ( ' ) , ( ' ) , ( ln( ) , ( ln ) , ( ln ) , ( y x L y x R y x L y x R y x I y x Z + = + = =
a) b)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Noviembre de 2005

Efectos de la Iluminacin 2






























Si R(x,y) y L(x,y) son variables independientes, el histograma de Z(x,y) viene dado
por la convolucin de los histogramas de R(x,y) y L(x,y). Si la iluminacin L(x,y) es
constante, L(x,y) tambin lo es, y su histograma ser un impulso. La convolucin de este
impulso con el histograma de la reflectancia R(x,y) no la modifica y por lo tanto, la ima-
gen I(x,y) tiene el mismo histograma que la reflectancia R(x,y). Si por el contrario, la ilumi-
nacin L(x,y) tiene un histograma ms ancho, el proceso de la convolucin con el histo-
grama de la reflectancia R(x,y) dar lugar a que el histograma de la imagen I(x,y) sea
sustancialmente diferente al histograma de la componente de reflectancia R(x,y). El grado
de distorsin depender de cun ancho sea el histograma de la componente de ilumina-
cin L(x,y), es decir, de cun no uniforme sea la iluminacin.

Cuando se tenga acceso a la fuente de iluminacin, una solucin que se emplea habi-
tualmente para compensar la no uniformidad de sta consiste en proyectar la iluminacin
sobre una superficie clara y plana. Esta proyeccin dar lugar a una imagen
G(x,y)=k.L(x,y), donde k es una constante que depende de la reflectividad de la superfi-
cie. Ahora, para cualquier otra imagen I(x,y) formada a partir de la ecuacin (1) para una
funcin de reflectividad dada, R(x,y), y para la misma funcin de la iluminacin L(x,y), po-
demos compensar la iluminacin haciendo

(3)
k
y x R
y x L k
y x L y x R
y x G
y x I
y x H
) , (
) , ( .
) , ( ). , (
) , (
) , (
) , ( = = =
c) d)
Figura 1: (a) Funcin de reflectancia
R(x,y) generada por computadora. (b)
Histograma de la funcin reflectancia. (c)
Funcin de iluminacin L(x,y) generada
por computadora. (d) Imagen I(x,y)
producto de las funciones de reflectancia e
iluminacin. (e) Histograma de la imagen.
e)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Noviembre de 2005

Efectos de la Iluminacin 3
Luego, si R(x,y) se puede segmentar empleando un umbral T, entonces la imagen
H(x,y) tambin empleando un umbral T/k. Este mtodo se puede emplear siempre que la
iluminacin no cambie de imagen a imagen.



Ejemplo de Compensacin de Iluminacin

En su Proyecto Final de Carrera, que consista en un Sistema de Visin para la inspec-
cin de blisters, la egresada de la Universidad Nacional de Quilmes, Iris Herrero, tuvo que
resolver el problema de la iluminacin no uniforme (puede encontrarse un breve resumen
del proyecto en el apunte Aspectos de un Proyecto de Visin Artificial.pdf o el infor-
me completo de tal proyecto en la referencia (2)).

El problema se deba a que la forma rectangular de la estructura, donde se colocaba la
fuente de luz y la cmara de video, ocasionaba que la iluminacin fuera ms intensa en el
centro de las imgenes, perdiendo la uniformidad siempre deseada. Para solucionar esto,
se incluy en el sistema de visin una rutina de inicializacin que consista en capturar u-
na imagen de un fondo blanco y plano, que se almacenaba para luego ser utilizada por u-
na rutina de compensacin de iluminacin por software. De esta manera, cada imagen to-
mada del producto se preprocesaba para compensar la iluminacin antes de proceder a
realizarle los anlisis necesarios.

En el anexo puede encontrarse una forma concreta de cmo compensar la iluminacin
cuando conocemos las caractersticas de sta ltima.

















Referencias

1) Digital Image Processing Second Edition, Rafael C. Gonzalez Richard E. Woods,
captulo 10.

2) Iris Herrero, Control de Blisters mediante Visin Artificial, Informe del Proyecto
Final de la carrera de Ingeniera en Automatizacin y Control Industrial de la Universidad
Nacional de Quilmes.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Noviembre de 2005

Efectos de la Iluminacin 4
Anexo

En este anexo se mostrar un procedimiento usado para compensar la iluminacin so-
bre una imagen ya adquirida mediante un algoritmo. Para ello, vamos a suponer que co-
nocemos con cierta exactitud las caractersticas de la distribucin de luz en la imagen.


Como primer paso, carguemos una imagen y supongamos que sta ha sido tomada
bajo la condicin de una iluminacin uniforme, es decir, L(x,y) = 1 para todo (x,y):
R = double(imread('blood1.tif','tif'));
[f,c] = size(R);
L = ones(f,c);
I = R.*L; % I coincide con R
figure, imshow(uint8(I)), title('Imagen con Iluminacion Uniforme')

Recordar que para aplicar el modelo iluminacion-reflectancia, I(x,y) = R(x,y)*L(x,y),
se debe realizar un producto elemento a elemento de matrices usando .*.

Ahora, vamos a considerar que la iluminacin (L) no es uniforme, sino que vara segn
algn patrn (en este caso, una onda sinusoidal):
L = zeros(f,c);
for x=1:f
L(x,:) = 0.9 + 0.1*cos(2*pi*x/f);
end
figure, imshow(uint8(L*255)), title('Iluminacion')

Hecho esto, tengo en cuenta el modelo iluminacion-reflectancia presentado en este a-
punte, I(x,y) = R(x,y)*L(x,y) (R sera la imagen original, L la iluminacin, e I la imagen re-
sultante):
I_ilu = R.*L;
figure, imshow(uint8(I_ilu)), title('Imagen con Iluminacion No Uniforme')

Para solucionar el problema de la iluminacin no uniforme vamos a definir la siguiente
matriz, que representar 1 / [k.L(x,y)] y vamos a suponer que k = 1:
Comp = 1./L;
figure, imshow(uint8(Comp*255*0.6)), title('Compensacion')

Por ultimo, apliquemos la compensacin a la imagen mal iluminada (I_ilu):
I_compensada = Comp.*I_ilu;
figure, imshow(uint8(I_compensada))
title('Imagen con Iluminacion Compensada')


El script de Matlab anterior puede encontrarse en la pgina de la materia, con el nom-
bre prueba_compensacin_iluminacin.m. Ese script tambin muestra las imgenes
resultantes obtenidas y los efectos de una iluminacin no uniforme a la hora de binarizar
una imagen.

Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 1
Aspectos de un Sistema de Visin Artificial

Este apunte tiene como objetivo presentar brevemente los pasos fundamentales de un
proyecto de visin artificial.

La visin artificial es una tcnica basada en la adquisicin de imgenes, generalmente
en dos dimensiones, para luego procesarlas digitalmente mediante algn tipo de CPU
(computadora, microcontrolador, DSP, etc), con el fin de extraer y medir determinadas
propiedades de la imgenes adquiridas. Se trata, por tanto, de una tecnologa que combi-
na las computadoras con las cmaras de video para adquirir, analizar e interpretar imge-
nes de una forma equivalente a la inspeccin visual humana.

Actualmente se aplica en diversos procesos cientficos y militares, extendindose su u-
so adems, en un amplio rango de sectores industriales para la automatizacin de tareas
anteriormente reservadas para la inspeccin visual humana. Este tipo de incremento de u-
tilizacin a nivel industrial es debido a que se trata de una tecnologa especialmente til
en labores de inspeccin o supervisin, siendo cuantitativamente ms objetivos y consis-
tentes que la inspeccin humana. Un segundo aspecto complementario de estas tcnicas
es la automatizacin derivada de esta inspeccin y la posibilidad de actuar sobre el proce-
so de fabricacin o inspeccin modificando parmetros de la mquina de produccin. Las
tcnicas de visin artificial, como demuestra su gran uso en la industria, son particular-
mente apropiadas para la realizacin de trabajos visuales altamente repetitivos que sean
fatigosos o difciles de realizar para un operario, especialmente cuando este trabajo es i-
neficiente o costoso en trminos econmicos o temporales.

Un sistema de visin artificial se compone bsicamente de los siguientes elementos:

Fuente de luz: es un aspecto de vital importancia ya que debe proporcionar unas
condiciones de iluminacin uniformes e independientes del entorno, facilitando ade-
ms, si es posible, la extraccin de los rasgos de inters para una determinada a-
plicacin.

Sensor de imagen: es el encargado de recoger las caractersticas del objeto bajo
estudio.

Tarjeta de captura o adquisicin de imgenes: es la interfaz entre el sensor y la
computadora o mdulo de proceso que permite al mismo disponer de la informa-
cin capturada por el sensor de imagen.

Algoritmos de anlisis de imagen: es la parte inteligente del sistema. Su misin
consiste en aplicar las transformaciones necesarias y extracciones de informacin
de las imgenes capturadas, con el fin de obtener los resultados para los que haya
sido diseado.

Computadora o mdulo de proceso: es el sistema que analiza las imgenes recibi-
das por el sensor para extraer la informacin de inters en cada uno de los casos
implementando y ejecutando los algoritmos diseados para la obtencin de los ob-
jetivos.

Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 2
Sistema de respuesta en tiempo real: con la informacin extrada, los sistemas de
visin artificial pueden tomar decisiones que afecten al sistema productivo con el fin
de mejorar la calidad global de produccin.





















Fuentes de luz

La fuente de luz es un factor de vital importancia en los sistemas de visin artificial y a-
fectan de forma crucial a los algoritmos de visin que se vayan a utilizar bajo esas condi-
ciones. Una iluminacin arbitraria del entorno no suele ser aceptable ya que muy proba-
blemente se obtengan imgenes con un bajo contraste, reflexiones especulares, adems
de sombras y detalles espurios. Los objetivos de una iluminacin adecuada son, bsica-
mente, independizar las condiciones del entorno y resaltar los rasgos de inters de una
determinada aplicacin.

Tipos de iluminacin
A continuacin slo se enuncian los diferentes tipos de iluminacin. En el apunte
Tipos de Iluminacin.pdf se pueden encontrar los detalles acerca de las tcnicas de i-
luminacin ms comunes y generalmente usadas.

Iluminacin posterior (backlight).
Iluminacin Frontal Oblicua y Direccional.
Iluminacin Frontal Axial (difusa).
Iluminacin de Da Nublado (cloudy day ilumination, CDI).
Iluminacin de Campo Oscuro (dark field).
Array de luces.
Iluminacin de campo claro (o brillante).



Algoritmos de
procesamiento
T
a
r
j
e
t
a

A
d
q
u
i
s
i
d
o
r
a

Interfase
Computadora (CPU o
mdulo de proceso)
Cmara
y lentes
Fuente de luz
(iluminacin)
Actuadores
externos
del proceso
Figura 1: Elementos de un sistema de visin artificial.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 3
Sensores de imagen

Los sensores de imagen son componentes sensibles a la luz que modifican su seal e-
lctrica en funcin de la intensidad luminosa que perciben. La tecnologa ms habitual en
este tipo de sensores es el CCD (charge coupled devices o dispositivos de acoplamiento
de carga) donde se integra en un mismo chip los elementos fotosensibles y el conjunto de
puertas lgicas y circuitera de control asociada. En stos, la seal elctrica que transmi-
ten los fotodiodos es funcin de la intensidad luminosa que reciben, su espectro, y el tiem-
po de integracin (tiempo durante el cual los fotodiodos son sensibles a la luz incidente).
Otra tecnologa que est empezando a extenderse son los sensores CMOS (complemen-
tary metal oxide semiconductor) dada las ventajas de stos sobre los CCD, y la reduccin
de precios de estos dispositivos. En cuanto al rango dinmico (rango de amplitud entre los
valores mximos y mnimos que un elemento puede producir, medido en decibeles) se pa-
sa de los 70dB de los sensores CCD a los 120dB de los sensores CMOS, valor ms cer-
cano a los 200dB del ojo humano, lo que facilita la autoadaptacin en el propio chip al bri-
llo existente en el entorno. El sensor CMOS puede amplificar de forma individual la res-
puesta de los pxeles en funcin de sus respectivas condiciones de iluminacin. El acceso
multipxel permite configurar individualmente distintos intervalos de tiempo de integracin,
mejorando la calidad de imagen mediante la seleccin del mejor tiempo de exposicin de
cada pxel.

Resolucin
Existen diferentes arquitecturas de sensores. En primer lugar estn los sensores linea-
les. En stos, el sensor es una lnea de fotodiodos. Esta arquitectura permite la utilizacin
de sensores de 1x1024, 1x2048, 1x4096, e incluso 1x6000 pxeles, lo que la hace muy a-
decuada para trabajar con altas resoluciones sobre superficies en movimiento. Para con-
diciones de iluminacin muy exigentes o velocidades de trabajo muy altas existe la posibi-
lidad del uso de sensores TDI (time delay integrated). Esta tecnologa consiste en el uso
de varias lneas de captura sobre la misma lnea del objeto, con el fin de sumar su carga y
obtener as una mayor sensibilidad. En segundo lugar estn los sensores de rea. Estos
alcanzan resoluciones habituales de 1024x1024, aunque existen en el mercado algunas
casas que disponen de cmaras especiales con resoluciones de hasta 3072x2048. En es-
te caso existen tecnologas de adquisicin de imgenes, entrelazada y no entrelazada. El
mtodo entrelazado captura las lneas pares e impares que forman una imagen en instan-
tes de tiempo diferentes. La tecnologa de no entrelazado (progressive scan) captura to-
das las lneas en el mismo instante de tiempo. Es ms costoso econmicamente, pero in-
dispensable para trabajar con objetos en movimiento.

Cuantizacin
Independientemente de la arquitectura utilizada, existen otros aspectos importantes en
estos sensores. La cuantizacin (conversin analgica-digital) determina el nmero de
bits usados para representar la informacin capturada. Por ejemplo, usando un sistema
blanco y negro de 8 bits tenemos 256 niveles diferentes mientras que, usando un sistema
de 10 bits, obtendramos 1024 niveles de gris diferentes, lo que permite una mayor defini-
cin.

La evolucin de las capacidades y caractersticas tcnicas de estos dispositivos ha se-
guido una tendencia muy favorable, potenciado en parte por el mayor uso industrial de es-
tos sistemas. Por tanto, en el mercado existen hoy en da numerosos dispositivos para a-
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 4
bordar cualquier tipo de aplicacin, ya sea en blanco y negro o color, a las velocidades re-
queridas en los procesos de produccin.

Entre los avances ms significativos, adems de la utilizacin de puertos de comunica-
cin cada vez ms potentes y fiables, est una capacidad de proceso ms o menos rele-
vante e integrada en la propia cmara. Por ejemplo, la cmara lineal OPSIS 5150ALC dis-
pone de FPGA (Field-programmable gate array, matriz de puertas programable por cam-
po) programable y de un microprocesador Motorola Power PC con sistema operativo en
tiempo real VxWorks que permite realizar procesamiento de imgenes. De esta forma se
puede transmitir la imagen, la imagen preprocesada, o los resultados del procesamiento
de la imagen a travs de los puertos de comunicacin de que dispone la cmara, hacien-
do innecesario el uso de tarjetas de captura.



Tarjetas de captura (o adquisidora)

Las tarjetas de captura de imagen permiten transferir la imagen de la cmara a la me-
moria de la computadora con el fin de que sta pueda realizar el procesamiento adecuado
a las imgenes.

Aspectos importantes en la adquisidora: velocidad de transmisin, el formato de los
datos, la profundidad de pxel, la capacidad de captura por disparo, la capacidad de pre-
procesado de la imagen, la velocidad de transferencia de la imagen de la memoria de la
tarjeta a la memoria de la computadora, el reset asncrono o la capacidad de controlar pa-
rmetros de la cmara en tiempo real. Evidentemente, todos los datos relativos a veloci-
dades de transmisin son especialmente importantes para poder trabajar en tiempo real.
Este aspecto ha mejorado notablemente en los ltimos aos. Otro parmetro que ha evo-
lucionado muy favorablemente es el formato de los datos. Con la estandarizacin definiti-
va de los formatos EIA-644 o LVDS, y del IEEE 1394, se consigue no slo aumentar la ve-
locidad de transferencia, sino que tambin se hace con una mayor inmunidad al ruido y
con longitudes de cableado aceptadas mucho mayores (de 2-10 metros a 25 metros de
distancia cmara tarjeta). La capacidad de sincronizar la captura de las imgenes con
una seal externa tambin se ha mejorado con el reset asncrono, lo que habilita el inicio
de la captura sin tener que esperar el siguiente vertical blank (es decir, sin necesidad de
finalizar completamente la captura de anterior). La capacidad de controlar la cmara con
salidas RS-232 de la tarjeta facilita la variacin de parmetros de la cmara, fundamen-
talmente la ganancia de los canales RGB, o de pticas motorizadas en tiempo real.

Un aspecto relativamente reciente es la capacidad de poder trabajar con multitap. E-
xisten tarjetas capaces de trabajar con varias cmaras a la vez (hasta 6 cmaras de 8 bits
por pxel), o usar los canales de que dispone para trabajar con cmaras multitap que
transmiten a la vez varios pxeles por cada uno de los canales. Por ejemplo, a 40 MHz, u-
na tarjeta puede recibir la informacin por un canal de 8 bits a 40 Mbytes/seg mientras
que si usa dos canales, la informacin la puede recibir a 80Mbytes/seg, incrementndose
de forma proporcional al nmero de canales la velocidad de transmisin.

En cuanto a la capacidad de proceso de las tarjetas, actualmente slo existe la posibi-
lidad de incorporar un Procesador Digital de Seal (DSP), que permite realizar determina-
dos algoritmos de anlisis de imagen en la propia memoria de la tarjeta, acelerando la im-
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 5
plementacin de los algoritmos de visin. El desarrollo de mdulos de proceso altamente
especializados ha sido abandonado debido a la evidencia de la evolucin superior en
prestaciones de los procesadores convencionales, que hacen que el costo de desarrollo
de las placas altamente especializadas no sea rentable para las casas fabricantes de la
misma, al ser stos rpidamente superados por los constantes incrementos en velocidad
y mejoras internas de los procesadores convencionales.

Otra de las recientes ventajas en cuanto a las tarjetas de captura de imgenes es la in
integracin de la tarjeta de captura, la visualizacin, y el mdulo de proceso (CPU) en un
solo elemento. Estos equipos se proporcionan en un chasis adecuado para trabajar en en-
tornos industriales.



Algoritmos de anlisis de imagen y reconocimiento de formas

Los algoritmos relacionados con visin artificial son muy variados y abarcan numero-
sas tcnicas y objetivos. Los pasos ms comunes en que consiste el anlisis o procesa-
miento de imagen se muestran en la figura 2.













Filtrado o Pre-procesamiento
Cuando se adquiere una imagen mediante cualquier sistema de captura, por lo general
esta no es directamente utilizable por el sistema de visin. La aparicin de variaciones en
intensidad debidas al ruido, por deficiencias en la iluminacin, o la obtencin de imgenes
de bajo contraste, hace necesario un preprocesamiento de la imagen con el objetivo fun-
damental de corregir estos problemas, adems de aplicar aquellas transformaciones a la
imagen que acenten las caractersticas que se deseen extraer de las mismas, de manera
que se facilite las operaciones de las etapas posteriores. A este campo pertenecen las
tcnicas de transformaciones geomtricas, las basadas en el histograma, el filtrado espa-
cial (apunte Filtrado Espacial.pdf) y el filtrado frecuencial (apunte Filtrado en el do-
minio de la frecuencia.pdf). Aunque existen lneas de investigacin abiertas, no es el
campo ms activo en ese sentido, y las tcnicas existentes son bastante tiles para la ma-
yora de las aplicaciones.

Algunas de las tcnicas ms habituales son:

Conversin de los niveles de gris: su objetivo es la mejora de la calidad de la ima-
gen.
Filtrado o
preprocesamiento
Segmentacin Clculo de
caractersticas
Clasificacin
Seleccin de
caractersticas
Diseo del
clasificador
Implementacin
Diseo
Figura 2: Etapas de un proceso de reconocimiento de formas.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 6
Transformaciones geomtricas: los objetivos de sta son la correccin de la pers-
pectiva y la reconstruccin tridimensional de los objetos de la escena.
Transformacin del histograma: las transformaciones del histograma pueden facili-
tar la segmentacin de objetos de la imagen, aunque habitualmente slo sirve para
modificar el contraste de la imagen y el rango dinmico de los niveles de gris.
Filtrado espacial y frecuencial: dado que pueden suponer una importante modifica-
cin de la imagen original, generalmente slo se consideran filtrados aquellas ope-
raciones realizadas en el dominio espacial o frecuencial que suponen transforma-
ciones pequeas de la imagen original.


Segmentacin o aislamiento de los objetos de inters
Cuando ya se dispone de la imagen capturada y filtrada, es necesario aislar o separar
los objetos de inters de la escena. Se pretende por tanto dividir una imagen en diferentes
regiones, o dicho de otra forma, detectar automticamente los bordes entre los elementos
o regiones. Las operaciones de segmentacin de una escena dependen de la propia es-
cena y de la informacin que se busque dentro de la imagen. Por ejemplo, en fotografa a-
rea se utiliza para separar regiones pobladas, agrcolas, bosques, aguas, etc. En imagen
mdica se usa para aislar zonas enfermas de los rganos, o para detectar y contar micro-
organismos en microscopia. Industrialmente, se usa como primer paso para la medicin
de piezas, para determinar la correcta disposicin del etiquetado de los envases (aislar el
envase, aislar la etiqueta, determinar si la relacin entre estos dos objetos es correcta),
para la medicin de irregularidades en superficies homogneas, para la deteccin de
cambios de texturas en las que el sistema ha de determinar si es un defecto o no lo es,
etc.

Las tcnicas bsicas de segmentacin se pueden dividir en tres grupos:

Aplicacin de umbrales de niveles de gris (apunte Segmentacin por umbraliza-
cin - Mtodo de Otsu.pdf).
Agrupacin por rasgos comunes.
Extraccin de bordes.

La segmentacin de imagen es una temtica actual de investigacin y se han definido
numerosos mtodos diseados para aplicaciones particulares. No obstante, no hay mto-
dos que sean tiles en una amplia variedad de situaciones, por lo que cada problema ne-
cesita la adaptacin o desarrollo de nuevas tcnicas.


Extraccin y seleccin de caractersticas
Con los objetos a estudiar ya definidos, es necesario extraer una serie de medidas que
los caractericen adecuadamente, en forma de vector de caractersticas.

Como norma general, para la eleccin de caractersticas se intenta que:

Sean discriminantes, es decir, tengan valores numricos diferentes para clases di-
ferentes.
Sean fiables, es decir, tengan valores parecidos dentro de una misma clase.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 7
Estn incorreladas, es decir, obtener la misma informacin con el mnimo nmero
de caractersticas.
Se calculen en un tiempo aceptable, de manera que sea utilizable en problemas de
tiempo real.

Dado que las caractersticas relevantes son a menudo desconocidas a priori, habitual-
mente se introducen muchas caractersticas candidatas para intentar representar mejor
las clases, an cuando muchas de ellas puedan ser parcial o completamente redundantes
o irrelevantes. No obstante, existen unas tcnicas para mejorar las prestaciones del con-
junto de caractersticas escogido inicialmente. stas estn ntimamente ligadas al recono-
cimiento de formas en su etapa de diseo del clasificador.


Reconocimiento de formas e inteligencia artificial
Normalmente, la visin artificial se utiliza para tomar decisiones a partir de la informa-
cin proporcionada por el sistema de adquisicin de imgenes y las transformaciones y o-
peraciones realizadas con ellas. La informacin extrada se puede considerar como un
vector que recoge las caractersticas o rasgos diferenciadores de la imagen analizada. En
el caso de que se trate de una aplicacin de medicin, este vector recoge todas aquellas
medidas que se deseaban obtener. En aplicaciones de inspeccin, y sobre todo, en apli-
caciones de clasificacin, este vector es el conjunto de datos con los que ha de trabajar
un reconocedor o clasificador encargado de extraer las conclusiones posibles a partir del
vector de entrada. Para el diseo del clasificador es necesaria una etapa de seleccin de
caractersticas y una etapa de aprendizaje o entrenamiento. Generalmente, se usa el pro-
pio clasificador como evaluador del conjunto de caractersticas en prueba dado que el m-
todo que proporciona la mayor fiabilidad, aunque sea el ms costoso temporalmente y de
menor generalidad o capacidad de aplicacin del clasificador a otros problemas. Respecto
a los mtodos clsicos de bsqueda secuencial, actualmente uno de los campos de inves-
tigacin abiertos es el uso de algoritmos genticos para la seleccin en paralelo de carac-
tersticas.

En el reconocimiento de formas aplicado a la visin artificial se utilizan tcnicas de re-
conocimiento geomtrico de formas, como el aprendizaje supervisado (se conoce la clase
a la que pertenece cada vector) en condiciones estadsticas o algoritmos de clasificacin
no supervisados o clustering y, adems, las redes neuronales, siendo estas ltimas espe-
cialmente interesantes por su capacidad de aprendizaje adaptativo. Existen numerosos al-
goritmos para cada una de estas tcnicas y se investiga ampliamente el desarrollo de
nuevos algoritmos e implementaciones hardware de stos. El problema fundamental de
estas tcnica, es que cada una de ellas suele ser la ms adecuada para las caractersti-
cas de un tipo especfico de problema no conocidas a priori, lo que dificulta la seleccin
de la tcnica con la que se desea abordar inicialmente el problema.



CPU o mdulo de proceso

Se trata del sistema encargado de recibir y analizar, mediante los algoritmos adecua-
dos, las imgenes a la velocidad necesaria para poder interactuar con el entorno en tiem-
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 8
po real. Es, pues, la parte del sistema encargada de implementar las funciones y objetivos
para los que se haya diseado el sistema.

Los altos requerimientos computacionales de esta tecnologa no se pueden especificar
de una forma genrica. Un ejemplo demostrativo de estos requerimientos es el del reco-
nocimiento automtico de matrculas mediante una cmara de 8 bits y una resolucin de
640x480 (307.200 pxeles). En esta aplicacin se necesita una etapa de filtrado, una bina-
rizacin que convierta la imagen de 256 niveles de gris a slo 2, una de segmentacin
que asle cada caracter de la matrcula y una de clasificacin. Las operaciones necesarias
se resumen en la siguiente tabla:

Comparaciones Sumas y restas Multiplicaciones Divisiones
Op. en coma
flotante
Total
Filtrado 0 2.457.600 0 307.200 0 2.764.800
Binarizacin 307.200 0 0 0 0 307.200
Segmentacin 1.229.310 1.510 0 1.000 0 1.231.820
Clasificacin 0 3.304 129.857 0 417 133.578
Total 1.536.510 2.462.414 129.857 308.200 417 4.437.398

Si se tiene en cuenta que el sistema ha de trabajar en tiempo real, capturando para e-
llo 30 imgenes por segundo, se necesita una capacidad de clculo de 133.121.940 ins-
trucciones por segundo (133 MIPS). Teniendo en cuenta que el ejemplo comentado es u-
na aplicacin relativamente simple, podemos comprender los altos requerimientos compu-
tacionales para el uso de estas tcnicas.

Quizs sea este el campo que ms rpidamente ha evolucionado, debido al uso gene-
ralizado de este tipo de sistemas en todos los campos. La rpida evolucin de los proce-
sadores de propsito general ha desbancado la utilizacin de procesadores especializa-
dos (ms caros y de una evolucin ms lenta por la demanda del mercado), excepto para
casos muy concretos. Por tanto, la potencia de los procesadores actuales, junto con las
arquitecturas hardware y software que soportan los sistemas multiprocesadores, permiten
el desarrollo de algoritmos complejos con tiempo de respuesta muy cortos y dentro de los
requerimientos de las aplicaciones en tiempo real.

Entre las mejoras ms destacadas podemos mencionar:

Pipeline: capacidad de separar la ejecucin de cada instruccin en varias etapas, lo
que permite que varias instrucciones se ejecuten en paralelo. El primer procesador
Pentium dispone de 5 etapas mientras que el Pentium IV dispone de 20.
Tecnologas de ejecucin dinmica: stas permiten una ejecucin especulativa su-
perando la secuenciacin lineal de las instrucciones de bsqueda y ejecucin de
instruccin. El procesador Pentium contiene un buffer de 40 instrucciones, mientras
que el Pentium IV tiene un buffer de 126 instrucciones y un algoritmo mejorado pa-
ra la prediccin de saltos.
Juegos de instrucciones SIMD (Single Instruction, Multiple Data): las 57 instruccio-
nes MMX de 64 bits que aparecieron con los primeros Pentium MMX permitan un
alto paralelismo en la ejecucin de instrucciones con tipos de datos multimedia, co-
mo son, por ejemplo, las imgenes utilizadas en los sistemas de visin. Esto se tra-
duce en importantsimas mejoras en los tiempos de ejecucin de determinadas o-
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 9
peraciones muy utilizadas en los algoritmos de procesamiento de imgenes, como
las convoluciones o las transformadas de Fourier. Los procesadores Pentium IV
disponen del juego de instrucciones de 128 bits SSE2 con 144 instrucciones nue-
vas.
Cachs de 2 nivel: estas cachs permiten disponer de memoria para instrucciones
y datos dentro de la propia pastilla del procesador, lo que evita los ciclos de acceso
a la memoria convencional, incapaz de proporcionar los datos a las velocidades
que los procesadores pueden consumirlas. El procesador Pentium II dispone de
512Kb de cach L2 para cdigo y datos, y un bus de 64 bits para conseguir altas
transferencias de datos entre la cach y el procesador.
Unidades de ejecucin en coma flotante FPU avanzadas: soporte del formato IEEE
754 de 32, 64 y 80 bits.

No obstante, para aplicaciones de muy elevados requerimientos computacionales y
estrictos requerimientos de tiempo, la existencia de hardware especializado o, principal-
mente, la utilizacin de otras arquitecturas paralelas que hagan uso de DSP o sistemas
FPGA aseguran la viabilidad en este sentido de cualquier aplicacin de visin artificial, al
permitir la utilizacin de sistemas multiprocesadores con los DSP en paralelo que se ne-
cesiten en la aplicacin.

Paralelamente al hardware utilizado, se han desarrollado libreras software que imple-
mentan numerosas funciones utilizadas habitualmente en esta tecnologa, lo que permite
reducir el ciclo de desarrollo de las aplicaciones y facilita la obtencin e implementacin
de algoritmos complejos con tiempos de ejecucin adecuadamente bajos.



Sistemas de respuesta

Se trata de automatismos que responden electromecnicamente con el fin de corregir
o evitar, por ejemplo, en los sistemas de produccin, las causas generadoras de los pro-
blemas de deteccin. Otra de las funciones de estos sistemas es la generacin de esta-
dsticas e informes de del proceso al que estn asociados, lo que permite disponer de una
informacin global de los procesos para facilitar la toma de decisiones.

En cuanto a los dispositivos electromecnicos utilizables en los sistemas de visin,
destacan los variadores de frecuencia para el control de motores y la comunicacin entre
las PCs y los autmatas programables que gestionan los distintos dispositivos mediante
redes de campo como Profibus o WorldFIP, y ms recientemente mediante Industrial
Ethernet, y protocolos Wireless. Estos buses permiten la integracin de los sistemas de
visin y sus acciones de respuesta dentro de la estructura CIM de las empresas, lo que
supone un ahorro econmico en los casos en que ya se disponga de esta estructura.







Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 10
Ejemplo de un Sistema de Visin: Control de Blisters

En esta seccin se presentar un breve resumen del proyecto final de carrera de la e-
gresada de la Universidad Nacional de Quilmes, Iris Herrero, de manera que puedan ver-
se los aspectos de un sistema de visin en una aplicacin probada y aprobada.

El proyecto consiste en el desarrollo de un sistema de visin para la inspeccin y su-
pervisin de blisters con base de PVC o aluminio. Tal inspeccin debe ser capaz de deter-
minar la ausencia de comprimidos en los alvolos, la presencia de comprimidos fuera de
los alvolos, alvolos sobrecargados, presencia de cuerpos extraos, comprimidos parti-
dos, comprimidos con desmoronamientos, y comprimidos manchados. Todo el anlisis
necesario debe tomar como mximo 1 segundo por cada paso de la blistera. Adems, el
proyecto cuenta con una interfase hombre-mquina que permite configurar ciertos par-
metros de la inspeccin (nivel de rigurosidad), proporcionar informacin del error detecta-
do y generar estadsticas de produccin. No obstante, nos concentraremos en lo relacio-
nado a la inspeccin y supervisin.


El sistema

El sistema consiste bsicamente en la integracin de un sensor, una CPU, un lente, un
software y una estructura de iluminacin y montaje.

Para la implementacin del proyecto se defini la utilizacin de la tecnologa de la
Smart-camera mvBlueLYNX, de la librera mvIMPACT-SDK de Matriz Vision para el pro-
cesamiento y anlisis de imgenes, y de la librera GNU-PicoGUI para la programacin de
la interfase hombre-mquina.

En particular, la Smart-camera mvBlueLYNX integra el sensor con el CPU, obteniendo
una potente herramienta de desarrollo para una amplia gama de aplicaciones. Su tamao
reducido, sumado al hecho de no necesitar una PC dedicada para que realice el procesa-
miento, permite que el sistema sea altamente portable y adaptable a los diferentes mode-
los de blisteras.


Sensor, tarjeta de captura y CPU

Por lo dicho en el prrafo anterior, se eligi la Smart-camera mvBlueLYNX como ele-
mento sensor, que adems integra la tarjeta de captura (necesaria para la digitalizacin
de las imgenes) y el mdulo de proceso o CPU. Puede encontrarse informacin detalla-
da de esta cmara en la siguiente pgina web:

http://www.matrix-vision.com/manuals/mvBlueLYNX/main.html


Fuente de luz. Tipo de Iluminacin. Lentes

Para resaltar los detalles de inters en los comprimidos, se opt por luz blanca difusa
como iluminacin. Para ello, se utilizaron como fuentes de luz arrays de LEDs blancos. La
tcnica de iluminacin frontal se logr mediante una combinacin de difusin y reflexin.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 11

La fuente de luz, el difusor y la cmara se integraron mediante una estructura (campa-
na) rgida. Para favorecer la difusin de la luz aportada por los LEDs, la estructura se pin-
t interiormente de color blanco mate.

La primera estructura de iluminacin desarrollada fue complementada con un lente de
4mm instalado en la Smart-camera. Luego de observar las imgenes obtenidas con esta
estructura, se observ que sta no brindaba un iluminacin uniforme: era ms intensa en
el centro de las imgenes. Por este motivo se debi redisear la estructura eliminando las
terminaciones en ngulos rectos. En esta segunda estructura se observ una mejora en la
distribucin de luz.

La utilizacin de un lente de 4mm gener una importante deformacin geomtrica de
la imagen. Para reducir este efecto no deseado, se decidi su reemplazo por un lente de
8mm. El cambio de lente implic que la segunda estructura deba ser rediseada para una
nueva distancia cmara-objeto de 42.7cm, dando paso a la creacin de la tercera estruc-
tura de iluminacin.

En las imgenes captadas usando la tercera estructura se observ que las deforma-
ciones geomtricas se redujeron notablemente. Esto fue sumamente beneficioso para lo-
grar mayor simplicidad y robustez en la etapa de procesamiento.

A pesar de haberse obtenido unas imgenes muy adecuadas para el procesamiento,
esta tercera estructura debi ser rediseada una vez ms. Este cambio se debi a que,
por cuestiones operativas y de espacio, el tamao de la estructura (que se ubica sobre la
mesa de amasado de la blistera) debi ser reducido.

El diseo de la estructura definitiva tuvo en cuenta un sistema de montaje robusto para
la cmara, que la asle de los cambios de luz del entorno y la resguarde mecnicamente.


Software. Algoritmos de anlisis de imagen

El software est integrado por una lgica de control y anlisis y una interfase hombre-
mquina.

Para el funcionamiento del sistema, el software requiere de la determinacin de varios
parmetros. Por ello, se configur de modo que como primera instancia, luego del arran-
que automtico, se carguen automticamente dichos parmetros desde un archivo de
configuracin almacenado en el disco de la Smart-camera.

Como se mencion, para el procesamiento y anlisis de las imgenes se eligieron las
funciones contenidas en la librera mvIMPACT-SDK de Matrix Vision.

En la figura 3, 4 y 5 se pueden ver diferentes diagramas de flujo que muestran esque-
mticamente la forma en que trabaja el software.




Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 12































Rutina Anlisis


















Encendido de la Smart-camera
Inicio automtico del sistema
Carga de la configuracin del sistema
Almacenamiento de la imagen con fondo blanco
Imagen en Vivo
Configurar

Analizar?
Carga configuracin

Detecta
Pulso?
Captura Imagen
Realiza Anlisis
Genera / Actualiza
estadsticas

Detener?
SI
SI
NO NO
Analizar
Rutina
Configuracin
Captura de Imagen
Graba
Configuracin
Configurar
Rutina Anlisis
Rutina Configuracin
Figura 3: Diagrama de estados.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 13


















































Imagen en Vivo
Captura Imagen
Compensacin de Iluminacin
Define Zona de anlisis
Calcula Histograma
Calcula Umbral ptimo
Segmenta Imagen
Procesa Imagen
Filtra Objetos Extraos
Analizar Imagen
Calcula el Nmero de Calles
Guarda Configuracin
Figura 4: Diagrama de la Rutina Configuracin.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 14
A continuacin se explica brevemente algunos de los pasos presentados en los diagra-
mas.

Compensacin de Iluminacin: debido a la forma rectangular de la estructura de ilu-
minacin del sistema, se debi proceder a realizar una compensacin por software de la
luminosidad de la imagen. La compensacin de la intensidad de los pxeles de la imagen
se realiza en base a la distribucin de la intensidad detectada en una imagen con fondo
blanco. Esta imagen es capturada por nica vez al instalar el sistema y se encuentra al-
macenada en el disco de la Smart-camera.

Define Zona de Anlisis: esta funcin tiene como objetivo delimitar la zona de anli-
sis con el fin de descartar posible contaminacin de la imagen, excluyendo zonas que ex-
ceden los lmites de inters.

Calcula Histograma: permite determinar en qu rango de intensidades se encuentra
centralizada la mayor cantidad de pxeles.

Clculo Umbral ptimo: esta funcin permite el clculo ptimo del umbral de una i-
magen o histograma, usando el mtodo de Otsu.

Segmentacin de la Imagen: usando el umbral ptimo, se realiza la segmentacin de
la imagen. Si el objeto y el fondo difieren en el nivel de gris, se pueden identificar los pxe-
les que pertenecen al objeto mediante el proceso de segmentado. Para segmentar la ima-
gen se utiliza la binarizacin: se etiqueta con cero los pxeles cuyo nivel de gris sean me-
nores al valor del umbral ptimo y con 1 a los pxeles con nivel de gris mayor.

Proceso Imagen: la imagen utilizada para obtener la configuracin es la imagen a to-
mar como patrn. De sta, se obtienen los valores que determinarn qu comprimido
cumple las especificaciones y cules no. Por este motivo se procesa esta imagen de mo-
do de obtener los datos ms exactos. Con este fin, en esta etapa se aplican dos funciones
a los efectos de eliminar las fallas de iluminacin u otros factores que afecten la definicin
de la imagen a establecer como patrn. stas son:

1) Transformada de Morfologa Open: esta funcin se aplica sobre la imagen seg-
mentada (binarizada) y sirve para suavizar los contornos de los comprimidos, sepa-
rando as objetos que se encuentren vinculados por pequeas uniones.
2) Filtrado de Objetos por rea: esta funcin permite remover objetos basndose en
su rea. De este modo podemos filtrar (eliminar) todos los objetos de una imagen
cuya rea sea menor que un determinado valor.

Analizar Imagen: Esta etapa es la ms importante de la rutina, dado que previo pro-
cesado de la imagen, se obtienen los parmetros esenciales del patrn. Estos componen
la configuracin que se utilizar como base para el control de la blisteada de este produc-
to.

Los parmetros que se utilizaron para la creacin de la configuracin fueron:
1. rea (AREA);
2. Factor de forma (ROUDNESS);
3. Coordenadas del rectngulo perimetral (EXTREME_BOX).

Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 15
En base a las caractersticas de las fallas que se pretenden detectar, se comprob em-
pricamente que este conjunto de parmetros otorgaba una gran confiabilidad requiriendo
un tiempo de procesamiento reducido.

Definicin de los parmetros:

rea (AREA): es el nmero de pxeles blancos en un objeto. El nmero de pxeles es
multiplicado por el valor del rea del pxel. Los agujeros no contribuyen para el rea.

Factor de forma (ROUDNESS): este valor es derivado del permetro y el rea de un
objeto. Este parmetro tiene un rango de valores de 0 a 1. Un objeto circular tiene el mxi-
mo valor del rango (1) y para objetos irregulares o alargados el parmetro tiende al mni-
mo valor del rango (0). Su ecuacin es:




Coordenadas del rectngulo perimetral (EXTREME_BOX): especifica la mxima y la
mnima coordenada de un objeto (bounding box). Las coordenadas son retornadas en dos
puntos en las unidades especificadas: el punto superior izquierdo (XMIN,YMIN) y el punto
inferior derecho (XMAX,YMAX). De modo que:
















Guardo Configuracin: los parmetros extrados del anlisis de la imagen patrn son
guardados en un archivo en el disco de la cmara con extensin txt. Los datos que se
guardan son los siguientes: nmero de alvolos; rea mnima y mxima; factor de forma
mnimo y mximo; valor del umbral; flag de descarte por comprimido fallado, ausente y
manchado; tipo de fondo; coordenadas del rectngulo perimetral de cada alvolo; nmero
de calles; y posicin de las calles.

El valor del umbral se calcula en forma automtica y es un parmetro altamente afec-
tado por las variaciones en la iluminacin. Por este motivo, es muy importante que el sis-
tema de iluminacin implementado permita un aislamiento adecuado del sistema a las va-
riaciones externas de la luz, y que a su vez otorgue una iluminacin constante y uniforme
sobre la zona de anlisis.

2
. 4
Perimetro
Area
Roudness

+ =
+ =
1
1
Min Max
Min Max
Y Y alto
X X ancho
XMIN,YMIN
YMAX,YMIN
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 16


















































Imagen en Vivo
NO
Carga Configuracin
Detecta Pulso
Captura Imagen
Compensacin de Iluminacin
Segmenta Imagen
Procesa Imagen
Define Zona de Anlisis
p/Alvolo
Funcin Control

Descarte?
Genera Seal de Descarte

Detener?

ltimo?
SI
SI
SI
NO
NO
Figura 5: Diagrama de flujo de la Rutina Analizar.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 17
A continuacin se describen algunos de los pasos de la Rutina Analizar.

Carga Configuracin: carga en la memoria de la Smart-camera los parmetros guar-
dados en el archivo de configuracin (en el disco de la cmara), correspondientes al tipo
de blisteado a realizarse.

Detecta Pulso: una vez cargada la configuracin, el sistema se queda a la espera de
la seal digital que enva el sensor a la Smart-camera para realizar la captura y procesa-
miento de la imagen a analizar.

Compensacin de Iluminacin: Idem a la Rutina Configuracin.

Segmenta Imagen: se realiza usando el valor de umbral calculado en base a la ima-
gen patrn. Este valor es cargado del archivo de configuracin.

Proceso Imagen: a diferencia de la rutina configuracin, en esta etapa no se realiza el
filtrado de objetos por rea mnima. Si realizramos ese filtrado en este paso, podramos
perder informacin importante para realizar la supervisin del correcto estado de los com-
primidos de los blisters.

Define Zona de Anlisis por Alvolo: en esta etapa se define una subimagen por al-
volo. El nmero total de alvolos y sus correspondientes coordenadas son parmetros
que se cargan del archivo de configuracin. Las regiones definidas por estas coordenadas
corresponden a los rectngulos externos de cada alvolo de la imagen patrn con la que
se realiz la configuracin. Se trabaja con una subimagen para optimizar la bsqueda y
minimizar el tiempo de requerido por el sistema para ejecutar la rutina de anlisis.

Funcin Control: la subimagen definida en la etapa anterior es pasada como parme-
tro a la Subrutina Control, donde se realiza un anlisis y se determina el correcto estado
del comprimido de ese alvolo.

Genera Seal de Descarte: en caso de producirse la deteccin de un comprimido de-
fectuoso, la subrutina retorna un valor que indica que se produjo una falla en el comprimi-
do de ese alvolo, por lo que se genera en forma automtica la seal de descarte de ese
blister.



Fases del Proyecto

A continuacin se enunciarn las pasos que constituyeron el desarrollo del sistema de
visin (ordenados temporalmente):

Anlisis de las caractersticas tcnicas (alcances y limitaciones) de la Smart-came-
ra mvBlueLINX.
Puesta en funcionamiento de la Smart-camera mvBlueLYNX: Upgrade del softwa-
re, conexionado, configuracin de interfases.
Configuracin del puerto serial RS 232 requeridos para la comunicacin e interac-
cin entre la Smart-camera mvBlueLYNX y la PC mediante el protocolo de comuni-
cacin TCP.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 18
Configuracin de la interfase Ethernet LAN para establecer la comunicacin entre
la Smart-camera mvBlueLYNX y una PC mediante el protocolo FTP (para enviar a
la Smart-camera los programas compilados en la PC de desarrollo).
Instalacin, configuracin y actualizacin de los programas y libreras requeridas
para el desarrollo y compilacin de los programas en la PC.
Estudio de la librera mvIMPACT-SDK.
Programacin en el entorno de desarrollo Visual C++ de las rutinas de configura-
cin y anlisis mediante el uso de las funciones de anlisis y procesamiento de i-
mgenes definidas en la librera mvIMPACT-SDK.
Prueba y ajuste del funcionamiento de las rutinas de configuracin y anlisis en la
PC mediante el uso de la funcin import de la librera mvIMPACT-SDK, la cual per-
mite la carga de imgenes guardadas en el disco.
Estudio de la librera GNU-PicoGUI mediante el anlisis de ejemplos y el manual
de referencia API.
Desarrollo de la interfase hombre-mquina mediante el uso de la librera GNU-
PicoGUI.
Acople a las rutinas de configuracin y anlisis de la interfase hombre-mquina.
Pruebas y ajustes del funcionamiento del nuevo software integrado en la Smart-
camera mvBlueLYNX.
Diseo y armado de la primera estructura de iluminacin.
Clculo de lente acorde a las dimensiones de la estructura de iluminacin y la zona
de inspeccin definida.
Modificacin del software para la captura de imgenes por deteccin de la seal
digital emitida por el sensor.
Montaje de la mesa de ensayos para el sistema integrado por la Smart-camera
mvBlueLYNX, el software, la estructura de iluminacin y el lente.
Realizacin de pruebas y ajustes del sistema integrado en la mesa de ensayos.
Instalacin y ensayo del prototipo en la planta.
Procesamiento de los resultados del ensayo.
Ajustes en el diseo de la estructura de iluminacin.
Segundo ensayo en la planta.
Ajustes en el diseo y tamao de la estructura de iluminacin.
Clculo del lente adecuado a la nueva estructura de iluminacin.
Tercer ensayo en planta.
Rediseo de la estructura de iluminacin para una mejor integracin mecnica a la
lnea de blisteado, e inclusin de un mecanismo para el montaje de la Smart-came-
ra mvBlueLYNX.
Adaptacin del software a la nueva estructura de iluminacin.
Pruebas y ajustes del sistema final.
Realizacin de prueba final en la mesa de ensayos con el sistema terminado.



Resultados obtenidos

Durante las pruebas de funcionamiento, el sistema present una muy buena res-
puesta en la deteccin de comprimidos ausentes, manchados y calados.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Octubre de 2005

Aspectos de un Sistema de Visin Artificial 19
Se presentaron algunos casos de no deteccin de comprimidos partidos, dado que
la deteccin de stos depende fuertemente del valor del umbral que calcula el sis-
tema para la segmentacin de la imagen. Otro factor que afecta a la deteccin de
estos casos es la holgura (o la falta de la misma) existente entre el comprimido y el
alvolo. Se debe tener en cuenta que los casos no detectados por el sistema auto-
mtico tampoco son fcilmente detectables por el operador humano.
La forma rectangular de la estructura de iluminacin (con su distribucin no unifor-
me de la luz) dificult la determinacin de un umbral nico adecuado para la co-
rrecta segmentacin de toda la imagen. Por ello, se debi proceder a compensar
por software el efecto de la iluminacin a fin de evitar que el clculo automtico del
umbral se vea afectado.
El tiempo requerido por la Smart-camera mvBlueLYNX para realizar un anlisis
completo fue de aproximadamente 1.5 segundos, siendo el tiempo mximo admi-
sible para el anlisis de 1 segundo. En este punto se propone como solucin posi-
ble la adquisicin de una Smart-camera mvBlueLYNX de mayor capacidad de pro-
cesamiento.

A continuacin se presenta un ejemplo de la puesta a prueba del sistema con una tan-
da de blisteado en el que se forzaron diferentes casos de comprimidos defectuosos.

Total comprimidos analizados 640
Total comprimidos OK 621
Total comprimidos NoOK 19
Total comprimidos ausentes 6
Total comprimidos fallados 10
Total comprimidos manchados 2
Total comprimidos superpuestos 1

Durante esta prueba, el sistema present tan slo 2 falencias en la deteccin de
un total de 640 comprimidos analizados (Tasa de Error: 0,31%).










Referencias

1) AITEX Instituto Tecnolgico Textil, Anlisis de la tecnologa de visin artificial
aplicada al sector textil.
http://www.aitex.es/estudios/Vision_Artificial1.pdf

2) Iris Herrero, Control de Blisters mediante Visin Artificial, Informe del Proyecto
Final de la carrera de Ingeniera en Automatizacin y Control Industrial de la Universidad
Nacional de Quilmes.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 1
Procesamiento Global empleando la Transformada de Hough

En este apunte vamos a conocer a la transformada de Hough. A diferencia de los m-
todos de anlisis local que ya se han visto, la transformada de Hough considera las rela-
ciones globales entre pxeles de borde permitiendo encontrar ciertos patrones en la ima-
gen como lneas y crculos.

Supongamos que para n puntos de la imagen se desean encontrar aquellos subcon-
juntos de puntos que caen en lneas rectas. Una posible solucin podra ser en primer lu-
gar encontrar todas las lneas determinadas por cada par de puntos y entonces encontrar
todos los subconjuntos de puntos que estn cerca de cada recta en particular. Este pro-
blema as planteado requiere encontrar n(n-1)/2~n
2
rectas y realizar n(n(n-1))/2~n
3
com-
paraciones de cada punto a lnea. Este mtodo no ser viable salvo en casos triviales.














Una alternativa al mtodo de bsqueda exhaustiva es la transformada de Hough. Con-
sideramos un punto (x
i
,y
i
) y la ecuacin de la recta, de la forma pendiente y ordenada al
origen,
(1)

Por el punto (x
i
,y
i
) pasan infinitas rectas, pero todas satisfacen la ecuacin anterior pa-
ra diferentes valores de a y b. Sin embargo, escribiendo esta ecuacin en la forma

(2)

y considerando el plano ab (tambin denominado espacio de parmetros) da lugar a una
nica recta para el par (x
i
,y
i
) constante. Si ahora consideramos un segundo punto (x
j
,y
j
),
tambin va a tener su recta asociada en el espacio de parmetros. Estas dos rectas se
cortarn en el espacio de parmetros en un punto (a,b), donde a es la pendiente y b la
ordenada al origen de la recta que contiene a los puntos (x
i
,y
i
) y (x
j
,y
j
) en el plano xy, co-
mo se puede ver en la figura 1. De hecho, todos los puntos de esa recta en el plano xy
darn lugar a rectas diferentes en el espacio de parmetros que se cortan en un nico
punto (a,b).

El atractivo de la transformada de Hough proviene de subdividir el espacio de prame-
tros en celdas acumuladoras, como se puede ver en la figura 2, donde (a
min
,a
max
) y
(b
min
,b
max
) son los rangos esperados para la pendiente y la ordenada al origen. La celda
de coordenadas (i,j) con un valor de acumulador A(i,j) corresponde al cuadrado asociado
Figura 1: (a) Plano xy. (b) Espacio de parmetros.
b ax y
i i
+ =
i i
y a x b + =
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 2
con las coordenadas (a
i
,b
j
) del espacio de parmetros. Inicialmente se ponen todos los a-
cumuladores a cero. Entonces para cada punto (x
k
,y
k
) de la imagen, permitimos que el
parmetro a pueda tomar cualquier valor de entre los a
i
permitidos y calculamos b usando
la ecuacin 2. Los valores resultantes para el parmetro b se redondean hasta los b
j

permitidos. Si para un valor a
p
result un valor b
q
se tiene que

(3)

Al final, un valor de M en el acumulador A(i,j) significa que M puntos del plano xy caen
sobre la recta y=a
i
x+b
j
. La precisin en la colinealidad de estos puntos depende del n-
mero de celdas del espacio de parmetros.




















Si subdividimos el eje a en K celdas, para cada punto (x
k
,y
k
), obtenemos K valores de
b correspondientes a los K posibles valores de A. Si la imagen tiene n puntos, la carga
computacional es del orden de nK. La transformada de Hough es lineal en n, y el produc-
to nK es mucho menor que si hubiramos empleado una bsqueda exhaustiva, a menos
que K sea del orden o exceda a n.

Un problema que surge al emplear la ecuacin de la recta y=ax+b para representar u-
na lnea es que tanto la pendiente como la ordenada al origen pueden llegar a valer
infinito, segn la lnea se hace vertical. Una forma de solventar este problema consiste en
utilizar la representacin normal de la recta

(4)

En la figura 3 se puede ver el significado de los nuevos parmetros (,). El uso de
esta representacin para construir la tabla de acumuladores es similar al mtodo explica-
do para las rectas en la forma pendiente y ordenada al origen. A cada punto del plano xy
corresponde ahora una sinusoide en el plano en lugar de una recta. Al igual que antes,
M puntos colineales a la recta x cos
j
+ y sen
j
=
i
darn lugar a M sinusoides que se
Figura 2: Celdas
acumuladoras en el
espacio de parmetros.
1 ) , ( ) , ( + = q p A q p A
= + sen y x * cos *
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 3
cortan en el punto (
i
,
j
) en el espacio de parmetros. Incrementando y calculando ,
obtendremos M entradas en el acumulador A(i,j) correspondiente al par (
i
,
j
).



















En la figura 4 podemos ver la tabla de acumuladores del espacio de parmetros en
este caso. El rango para el ngulo es 90, medido con respecto al eje de abscisas. Se
permiten valores negativos de para rectas por detrs del origen de coordenadas del pla-
no xy. Por ejemplo, una recta horizontal corresponde a un valor de =0 y un valor de i-
gual a la ordenada al origen, mientras que una recta vertical corresponde a un valor de
=90 y un valor de igual a la abscisa en el origen.



















En la figura 5 se ilustra con un ejemplo cmo funciona la transformada de Hough. La
imagen est deformada por cuatro puntos correspondientes a las esquinas de un cuadra-
do. Estos cuatro puntos dan lugar a cuatro sinusoides en el espacio . Las cuatro sinu-
Figura 3:
Representacin
normal de una
recta
Figura 4: Celdas
acumuladoras en el
espacio .
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 4
soides se cortan en seis puntos (en la figura 2 (b) aparecen ocho puntos, pero hay que
recordar que los dos puntos para =90 son los mismos que los puntos para =-90, por lo
que de ocho son seis distintos), correspondientes a las seis rectas posibles que pasan por
los cuatro puntos del plano xy, que son a saber, los cuatro lados del cuadrado y las dos
diagonales.



















Aunque hemos hecho un anlisis para el caso de rectas, la transformada de Hough
tambin es aplicable a cualquier funcin de la forma

(5)

donde v es un vector de coordenadas y c es un vector de coeficientes. Por ejemplo, pun-
tos que caen en el crculo

(6)

se pueden detectar empleando tambin la transformada de Hough. En este caso tenemos
tres parmetros (c
1
, c
2
, c
3
), lo que dar lugar a un espacio de parmetros de tres dimen-
siones, con celdas con forma de cubo y acumuladores de la forma A(i,j,k). El procedi-
miento en este caso es para cada punto del plano xy, para cada c
1
y para cada c
2
, calcu-
lar el valor de c
3
y actualizar el acumulador correspondiente a (c
1
, c
2
, c
3
). La complejidad
de la transformada de Hough es claramente dependiente del tamao del espacio de par-
metros.

(6)

En el apndice se puede encontrar un algoritmo hecho en un script de Matlab que rea-
liza la transformacin de Hough.




Figura 5: (a) Imagen con cuatro puntos de borde. (b) Transformada de Hough mostrando seis
puntos de corte correspondientes a las seis rectas que pueden pasar por los cuatro puntos.
0 ) , ( = c v g
2
3
2
2
2
1
) ( ) ( c c y c x = + +
2
3
2
2
2
1
) ( ) ( c c y c x = + +
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 5
Apndice


% TRANSFORMADA DE HOUGH PARA DETECCION DE RECTAS

% Universidad Nacional de Quilmes
% Ingeniera en Automatizacin y Control Industrial
% Ctedra: Visin Artificial - Agosto de 2005


A=double(imread('ruta2.bmp','bmp'));
B=A>240; %Binarizacion de la imagen

IMAGEN=B;
[m,n]=size(IMAGEN);
figure(1);imshow(IMAGEN);title('IMAGEN BINARIZADA');

%%%%%%%%%%%%%%%%%%%%%%%%%%%PARMETROS%%%%%%%%%%%%%%%%%%%%%%%%%

NTITA=500; %cantidad de divisiones del eje tita
NRO=500; %cantidad de divisiones del eje ro

TITAmax=pi/2; %variacion de la variable tita
TITAmin=-pi/2;
TITAdelta=(TITAmax-TITAmin)/NTITA; %variacion minima de tita

ROmax=sqrt(m^2+ n^2); %variacion de ro
ROmin=0;
ROdelta=(ROmax-ROmin)/NRO; %minima variacion de ro

%%%%%%%%%%%%%%%%%%%%%%%%%CAMBIO DE COORDENADAS DE LAS RECTAS%%%%%%%%%%%%%%%%

ET=zeros(NTITA,NRO); %ET: Espacio Transformado de (ro,tita)
[X,Y]=find(IMAGEN); %Retorna las coordenas (x,y) de los ptos de la imagen

if length(Y)>1
for i=1:length(Y) %Recorre la eje Y
for j=1:NTITA %Recorre el eje TITA
%%%CONVERSION DE COORDENADAS%%%
TITAc=TITAmin + TITAdelta*(j-0.5); %Desplazamiento por casilleros
ROc=X(i)*cos(TITAc)+ Y(i)*sin(TITAc); %Armado de senos a partir de
%(X,Y)
ROg=floor((ROc/ROmax)*(NRO-1)+0.5)+1; %Redondeado de RO desplazando
%cada casillero
if (ROg>=1)&(ROg<=NRO) %Si esta dentro de la grilla
%escribo el valor en ET
ET(j,ROg)=ET(j,ROg)+1; %LLeno las grila con los
%puntos, Obtencion de Senos
end %en funcion A TRANSFORMACION%%%
end
end
end

%%%%%%%%%%%%%%%%%%%%%%%BUSQUEDA DE LA RECTA MAS POPULAR%%%%%%%%%%%%%%%%%%%

[TITA,RO]=find(ET==max(ET(:))); %Busqueda de la recta mas popular
TITAr=TITAmin + TITAdelta*(TITA-0.5); %nuevos parametros para la reconstrucion
ROr=ROmin + ROdelta*(RO-0.5);

IMAGEN2=zeros(m,n,3);
IMAGEN2(:,:,1)=IMAGEN*255;
IMAGEN2(:,:,2)=IMAGEN*255;
IMAGEN2(:,:,3)=IMAGEN*255;

for xi=1:m
yi=floor((ROr-xi*cos(TITAr))/sin(TITAr)+0.5); %Reconstruccion de de la recta
if (yi>=1) &(yi<=n)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 6
IMAGEN2(xi,yi,1)=255; %Imagen reconstruida
end
end

figure(2);
imshow(uint8(IMAGEN2));title('Original y Reconstruida')

%%%%%%%%%%%%%%%%%%%%%ELIMINACION DE LA PRIMERA RECTA ENCONTRADA%%%%%%%%%%%%%%

for i=1:length(Y) %Recorre la eje Y
for j=1:NTITA %Recorre el eje TITA
ROc=0;
ROg=floor((ROc/ROmax)*(NRO-1)+0.5)+1; %Redondeado de RO desplazando
%cada casillero
if (ROg>=1)&(ROg<=NRO) %Si esta dentro de la grilla
%escribo el valor en ET
ET(j,ROg)=ET(j,ROg)+1; %LLeno las grila con los puntos
end
end
end


%%%%%%%%%%%%%%%%%%%%%%%BUSQUEDA DE LA SEGUNDA RECTA MAS POPULAR%%%%%%%%%%%%%%
[TITA,RO]=find(ET==max(ET(:))); %Busqueda de la recta mas popular
TITAr=TITAmin + TITAdelta*(TITA-0.5); %nuevos parametros para la reconstrucion
ROr=ROmin + ROdelta*(RO-0.5);

for xi=1:m
yi=floor((ROr-xi*cos(TITAr))/sin(TITAr)+0.5); %Reconstruccion de de la recta
if (yi>=1) &(yi<=n) %Imagen reconstruida
IMAGEN2(xi,yi,2)=255;
end

end
figure(3);
imshow(uint8(IMAGEN2));title('Original y Reconstruida')


Luego, las imgenes obtenidas con este algoritmo fueron las siguientes:

La imagen original sobre la que se aplica el algoritmo es la que sigue:



















Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 7
El resultado de binarizar la imagen original con un umbral de 240 es el siguiente:

























La recta ms popular se puede ver en la siguiente figura:























Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Septiembre de 2005

Procesamiento Global empleando la Transformada de Hough 8
Por ltimo, las dos rectas ms populares se muestran en la figura que sigue:
























Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 1
ra
parte 1
Operaciones Morfolgicas en Imgenes Binarias


Introduccin

La morfologa matemtica es una herramienta muy utilizada en el procesamiento de i-
mgenes. Las operaciones morfolgicas pueden simplificar los datos de una imagen, pre-
servar las caractersticas esenciales y eliminar aspectos irrelevantes. Teniendo en cuenta
que la identificacin y descomposicin de objetos, la extraccin de rasgos, la localizacin
de defectos e incluso los defectos en lneas de ensamblaje estn sumamente relaciona-
dos con las formas, es obvio el papel de la morfologa matemtica.

La morfologa matemtica se puede usar, entre otros, con los siguientes objetivos:

- Preprocesamiento de imgenes (supresin de ruido, simplificacin de formas).
- Destacar la estructura de objetos (extraer el esqueleto, marcado de objetos, envol-
vente convexa, ampliacin, reduccin).
- Descripcin cualitativa de objetos (rea, permetro, dimetro, etc).



Representacin de Imgenes Binarias

Definiremos una imagen binaria como una funcin de dos variables discretas a[m,n]
que puede tomar dos valores, 0 o 1, dependiendo del nivel de gris de la imagen (una i-
magen binaria tiene dos niveles: blanco y negro).

Se puede proponer una definicin alternativa si consideramos que una imagen consiste
en un conjunto de coordenadas discretas (tambin pueden ser reales pero no es el objeti-
vo de este estudio). En este sentido, el conjunto corresponde a todos aquellos puntos o
pxeles que pertenecen a la imagen. Por lo tanto, se puede decir que en morfologa mate-
mtica los conjuntos representan objetos en una imagen. Por ejemplo, el conjunto de to-
dos los pxeles negros en una imagen binaria constituye una descripcin completa de la
misma. Ms adelante veremos que el lenguaje de la morfologa matemtica es el de la te-
ora de conjuntos.













Figura 1: Representacin de una imagen binaria
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 1
ra
parte 2
A a
B A
B A C =
Como ya habamos adelantado, en las imgenes binarias, los conjuntos en cuestin
pertenecen al espacio Z
2
, donde cada elemento del conjunto es una 2-upla (vector 2-D)
cuyas coordenadas son las coordenadas [m,n] de un pxel blanco (o negro, segn la con-
vencin) de la imagen.


En la figura 2 se pueden ver dos conjuntos, A y
B. Observemos que se ha colocado un sistema de
coordenadas. El conjunto (u objeto) A consiste en
los puntos { [2,3]; [2,4]; [2,5]; [1,3]; [1,4]; [1,5]; [0,5] }
mientras que el B contiene los puntos { [0,0]; [0,1];
[1,0] }.

En este punto se debe acotar que en la mayora
de los lenguajes de programacin los arrays de ele-
mentos que sern los encargados de contener la i-
magen no admiten ndices negativos y en general
menores a 1. Por lo tanto, ser necesario realizar u-
na pequea modificacin al sistema de coordena-
das que consiste en un simple desplazamiento para poder operar sobre una imagen (con-
tenida en un array). En los algoritmos de ejemplo incluidos en el apndice se puede en-
contrar la forma de realizar esta modificacin.




Conceptos Bsicos de la Teora de Conjuntos

Sea A un conjunto en Z
2
. Si a=(a
1
,a
2
) es un elemento de A, entonces podemos afirmar
que

Similarmente, si a no es un elemento de A, decimos que


El conjunto que no tiene elementos se llama conjunto vaco y se denota por el smbolo
.

Un conjunto se especifica por el contenido de dos llaves: { }. En este apunte, los ele-
mentos de un conjunto son las coordenadas de pxeles que representan objetos u otros
rasgos de inters en la imagen. Por ejemplo, cuando escribimos la expresin C = { w | w
= -d, d D} queremos decir que el conjunto C es el conjunto de elementos, w, tal que w
sea el resultado de multiplicar por 1 cada una de las dos coordenadas de todos los ele-
mentos de D.

Si cada elemento del conjunto A es tambin un elemento de otro conjunto B, se dice
que A es un subconjunto de B, y se expresa como

La unin de dos conjuntos A y B, denotada por

A a
Figura 2: Imagen binaria con
dos conjuntos
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 1
ra
parte 3
B A D =
= B A
} | { A w w A
c
=
c
B A B w A w w B A = = } , | {
} , | { B

B b b w w = =
} , | { (A)
Z
A a z a c c + = =

es el conjunto de todos los elementos pertenecientes a A o a B, o a ambos. De la misma
forma, la interseccin de dos conjuntos A y B, denotada por


es el conjunto de todos aquellos elementos que pertenecen tanto a A como a B.

Dos conjuntos A y B se dicen mutuamente excluyentes o disjuntos si no tienen elemen-
tos en comn. En este caso,

El complemento de un conjunto A es el conjunto de elementos que no pertenecen a A:


La diferencia de dos conjuntos A y B, denotada por A-B, se define como


En la expresin vemos que este es el conjunto de elementos que pertenecen a A pero
no a B.

Adems de estas operaciones bsicas, vamos a necesitar de otras adicionales que son
usadas ampliamente en morfologa pero que generalmente no estn en los textos bsicos
de la teora de conjunto. La reflexin del conjunto B, que se escribe como


La traslacin de un conjunto A por el punto (vector) z=(z
1
,z
2
), denotada (A)
Z
, se define
como


Las siguientes figuras ejemplificarn las operaciones ms comunes de la teora de con-
juntos aplicadas a imgenes binarias.




















Figura 3: a) Conjunto A. b) Conjunto B. c) Unin de A y B.
Figura 4: a) Conjunto A. b) Conjunto B. c) Interseccin de A con B.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 1
ra
parte 4


















































Figura 5: a) Conjunto A.
b) Complemento de A.
Figura 6: a) Conjunto A. b) Conjunto B. c) A-B.
Figura 7: a) Imagen. b) Imagen trasladada por el punto [-50,-50].
Figura 8: a) Imagen. b) Imagen reflejada.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 1
ra
parte 5
} )

( | { = A B z B A
Z
} ) )

(( | { A A B z B A
Z
=

Dilatacin y Erosin

Estas operaciones son fundamentales en el procesamiento morfolgico. De hecho, la
mayora de los algoritmos morfolgicos estn basados en estas dos operaciones.


Elemento Estructural:

Si bien los conjuntos A y B pueden ser considerados como una imagen (u objeto), ge-
neralmente se considera que A es la imagen y B es el elemento estructural. El elemento
estructural es en morfologa matemtica lo que la mscara (o ncleo) de convolucin es
en los filtros lineales.

Los elementos estructurales ms comunes son los conjuntos que estn 4-conectados,
N
4
, y 8-conectados, N
8
, ilustrados en las siguientes figuras











Dilatacin

Sean A y B conjuntos en Z
2
. La dilatacin de A por B, expresada por AB, se define
como

Esta ecuacin consiste en obtener la reflexin de B sobre su origen y trasladar este re-
flexin por z. La dilatacin de A por B es entonces el conjunto de todos los desplazamien-
tos, z, tal que la reflexin de B y A se solapan por al menos un elemento. Teniendo en
cuenta lo anterior, la dilatacin de A por B tambin se puede expresar como


En general, la dilatacin aumenta el tamao de un objeto. La cantidad y la forma en
que aumenta el tamao depende de la eleccin del elemento estructural.

Una de las aplicaciones ms simples de la dilatacin es la unin de pxeles relaciona-
dos. La figura 10 a) muestra un texto cuyos caracteres han perdido pxeles debido a un fil-
trado con pasabajos. Se sabe que la longitud mxima de las rupturas es de dos pxeles.
Si se dilata la imagen con un elemento estructurante de conectividad 4 (N
4
) como el que
se muestra en la figura 9 a) se pueden unir los caracteres partidos y obtener como resul-
tado la figura 10 b).


Figura 9: Elementos estructurales estndar. a) N
4
. b) N
8
.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 1
ra
parte 6
} ) ( | { A B z B A
Z
=

























Erosin

Sean A y B conjuntos en Z
2
. La erosin de A por B, que se expresa como AB, se defi-
ne como

Esta ecuacin indica que la erosin de A por B es el conjunto de todos los puntos z ta-
les que B, trasladado por z, est contenido en A.

Generalmente, la erosin disminuye el tamao de los objetos. Como pasaba en la dila-
tacin, la cantidad y la forma en que se produce esta disminucin depende del elemento
estructural elegido.

Uno de los usos ms simples de la erosin es para la eliminacin de detalles irrelevan-
tes (en trminos de tamao) de una imagen binaria. La figura 11 a) muestra una imagen
compuesta por cuadrados cuyos lados tienen 1, 3, 5, 9, y 15 pxeles. Supongamos que
queremos eliminar todos los cuadrados excepto los ms grandes. Esto los podemos hacer
erosionando la imagen con un elemento estructural cuyo tamao sea un poco menor que
el de los cuadrados que deseamos conservar. Por ejemplo, si elegimos un elemento es-
tructural de 13x13 podemos obtener la imagen de la figura 11 b). Como se observa, slo
se han mantenido las porciones de los cuadrados ms grandes. Luego, podemos restituir
el tamao de estos 3 cuadrados a su tamao original de 15x15 dilatando la imagen ero-
sionada (figura 11 b) con el mismo elemento estructural utilizado para la erosin. El resul-
tado puede verse en la figura 11 c).


Figura 10: a) Texto de poca resolucin con caracteres partidos. b) Dilatacin
de la imagen de (a) con el elemento estructurante N
4
.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 1
ra
parte 7

















La dilatacin y la erosin son operaciones duales con respecto a la complementacin y
a la reflexin. Esto es

La demostracin de lo anterior, as como las diferentes propiedades de la dilatacin y la
erosin, no sern desarrolladas en este estudio pero pueden encontrarse en la mayora
de los textos de morfologa matemtica.



Algoritmos Simples de Dilatacin y Erosin

Las expresiones que se dieron anteriormente para la dilatacin y la erosin de imge-
nes binarias son las definiciones formales y pueden resultar difciles de comprender a la
hora de construir algoritmos para tales fines. A continuacin se enuncia la manera de ar-
mar algoritmos de dilatacin y erosin teniendo en cuenta la idea bsica e intuitiva de es-
tas dos operaciones:

Dilatacin: tomar cada pxel del objeto (con valor 1) y setear al valor 1 todos aque-
llos pxeles pertenecientes al fondo (background) que tienen una conectividad C (C=4,
C=8, etc) con el pxel del objeto. En pocas palabras, poner a 1 los pxeles del fondo veci-
nos a los pxeles del objeto.

Erosin: tomar cada pxel del objeto que tiene una conectividad C con los pxeles del
fondo y setearlo al valor 0. En otras palabras, poner a 0 los pxeles del objeto vecinos a
los pxeles del fondo.

En el apndice puede encontrarse una forma bastante genrica de implementar estos
algoritmos. La programacin se realiz en scripts de MatLab pero llevar los algoritmos a
otro lenguaje es una tarea simple ya que estn hechos con instrucciones comunes en los
diferentes lenguajes.


B A B A
C C

) ( =
Figura 11: a) Imagen con cuadrados de 1, 2,3, 5, 7, 9 y 15 pxeles de lado. b) Erosin de (a) con
un elemento estructural de 15x15. c) Dilatacin de (b) con el mismo elemento estructural.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 2
da
parte 1
Apertura y Clausura (Opening and Closing)

Como vimos, la dilatacin y la erosin estn muy relacionadas con la forma; la primera
operacin expande la imagen mientras que la segunda la contrae. La dilatacin y la ero-
sin usualmente se usan de a pares, bien la dilatacin seguida de la erosin o viceversa.
En cualquier caso, el resultado de esta aplicacin sucesiva de erosiones y dilataciones es
una eliminacin de detalles menores que no distorsiona la forma global del objeto.

La apertura de un conjunto A por el elemento estructural B, se define como


Es decir, la apertura de A por B es la erosin de A por B seguida por la dilatacin del
resultado por B..

De forma similar, la clausura de un conjunto A por el elemento estructural B, se define
como

O sea, es la dilatacin de A por B seguida por la erosin del resultado por B.

La apertura generalmente suaviza los contornos de un objeto y elimina protuberancias
finas. La clausura tambin suaviza los contornos pero, contrariamente a la apertura, gene-
ralmente fusiona las hendiduras finas y largas presentes en los objetos, elimina agujeros
pequeos y rellena brechas en el contorno.

La figura 12 a) muestra un conjunto A y la figura 12 (b) muestra varias posiciones de un
elemento estructural con forma de disco durante el proceso de erosin. El resultado de la
erosin se puede ver en la figura 12 (c). Se debe notar la eliminacin de las uniones entre
las dos secciones principales. El ancho de estas uniones era menor al dimetro del ele-
mento estructural. Los elementos salientes donde el elemento estructural (con forma de
disco) no caba fueron eliminados. La figura 12 (d) muestra la dilatacin del conjunto ero-
sionado, y la figura 12 e) el resultado final de la apertura. Ntese que las esquinas exterio-
res han sido redondeadas mientras que las esquinas interiores no fueron afectadas.
De manera similar, las figuras 12 (f) a 12 (i) muestran los resultados de la clausura de A
con el mismo elemento estructural. Notamos que las esquinas interiores fueron redondea-
das mientras que las esquinas exteriores permanecieron sin cambios. Tambin se ve el
suavizado que result en las partes del objeto luego de la apertura o de la clausura del
conjunto A con el elemento estructural circular.













B B A B A = ) (
B B A B A = ) (
(a)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 2
da
parte 2
Figura 12: Apertura y clausura morfolgica. El elemento estructural es el pequeo crculo
mostrado en varias posiciones en (b). El punto negro es el centro del elemento estructural.






































Como suceda con la dilatacin y la erosin, la apertura y la clausura son duales con
respecto a la complementacin y a la reflexin. Esto es



Las operaciones morfolgicas pueden ser usadas para construir filtros conceptualmen-
te similares a los filtros espaciales. La imagen binaria de la figura 13 (a) muestra una parte
de una huella digital contaminada con ruido. Aqu el ruido se manifiesta como elementos
blancos en el fondo oscuro y como elementos negros en los componentes blancos de la
huella digital. El objetivo es eliminar el ruido y sus efectos sobre la huella pero distorsio-
nndola lo menos posible. Un filtro morfolgico que consista en una apertura seguida de
una clausura puede lograr este objetivo.
(b)
(c)
(d)
(e)
(f) (g)
(h)
(i)
)

( ) ( B A B A
C C
=
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 2
da
parte 3
El elemento estructural elegido se exhibe en la figura 13 (b). Las figuras restantes
muestran paso a paso la operacin de filtrado. La figura 13 (c) expone el resultado de ero-
sionar A con el elemento estructural. El ruido del fondo fue completamente eliminado en la
etapa de erosin de la apertura debido a que en este caso todos las componentes de rui-
do son fsicamente ms pequeos que el elemento estructural. El tamao de los elemen-
tos de ruido (puntos negros) contenidos en la huella digital ha sido aumentado. La razn
es que estos elementos son contornos interiores que deben aumentar en tamao cuando
el objeto es erosionado. Esta ampliacin es contrarrestada cuando se aplica la dilatacin
sobre la figura 13 (c). La figura 13 (d) muestra el resultado. Las componentes de ruido
contenidos en la huella digital fueron reducidos en tamao o borrados completamente.
































Las operaciones recin descriptas constituyen la apertura de A por B. Notamos en la
figura 13 (d) que el efecto neto de la apertura fue eliminar virtualmente todos las compo-
nentes de ruido, tanto en el fondo como en la huella digital. Sin embargo, se crearon nue-
vas grietas en los bordes de la huella digital. Para contrarrestar este efecto no deseado,
realizamos la dilatacin sobre la apertura, como se ve en la figura 13 (e). La mayora de
las rupturas han sido restauradas, pero los bordes se hicieron ms gruesos, un efecto que
debe ser arreglado por la erosin. El resultado, mostrado en la figura 13 (f), constituye la
clausura de la apertura de la figura 13 (d). Este resultado final es notablemente libre de
(f)
(a)
(b)
(c)
(d)
(e)
Figura 13: a) Imagen con ruido. b) Elemento estructural. c) Imagen erosionada.
d) Apertura de A. e) Apertura de A. f) Clausura de la apertura.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 2
da
parte 4
ruido, pero tiene la desventaja de que algunos de los bordes de la huella no fueron com-
pletamente reparados y an contienen rupturas. Esto no es totalmente inesperado, ya que
no se pusieron condiciones en el procedimiento de filtrado para mantener la conectividad.



Transformacin Hit-or-Miss (o Ganancia - Prdida)

La transformacin morfolgica Hit-or-Miss es una herramienta bsica para la deteccin
de formas. Permite destacar en una imagen una determinada disposicin de espacial de
los pixeles. Para ello, emplea dos elementos estructurales que permiten relacionar la ima-
gen A con su complementaria A
C
.

Presentaremos este concepto con la ayuda de la figura 14 que muestra un conjunto A
que consiste de tres figuras u objetos (subconjuntos) llamados X, Y y Z. El sombreado en
las figuras 14 (a), (b) y (c) indica los conjuntos originales, mientras que el sombreado en
14 (d) y (e) indica el resultado de las operaciones morfolgicas. El objetivo es encontrar la
ubicacin de uno de los objetos: el X.

Consideremos que el origen de cada objeto o subconjunto est en su centro. Suponga-
mos que X est encerrado por una pequea ventana, W. El fondo local de X con respecto
a W se define como el conjunto (W-X), como se muestra en la figura 14 (b). La figura 14
(c) exhibe el complemento de A, que ser utilizado luego. La figura 14 (d) muestra la ero-
sin de A por X. Se debe recordar que la erosin de A por B es el conjunto de locaciones
del origen de X, tales que X est completamente contenido en A. Otra interpretacin sera
que AX puede ser visto como geomtricamente como el conjunto de todas las ubicacio-
nes del origen de X en los cuales X encontr una coincidencia en A. Teniendo en cuenta
esto, en la figura 14, A consiste solamente de tres conjuntos disjuntos: X, Y y Z.

La figura 14 (e) muestra la erosin del complemento de A por el conjunto del fondo lo-
cal, (W-X). La regin sombreada exterior en la figura 14 (e) es parte de la erosin. Nota-
mos que de la figura 14 (d) y (e) que el conjunto de ubicaciones para las cuales X encaja
exactamente dentro de A es la interseccin de la erosin de A por X y la erosin de A
C
por
(W-X) como se muestra en la figura 14 (f). Esta interseccin es precisamente la ubicacin
buscada. En otras palabras, si B representa el conjunto compuesto por X y su fondo
(background), la coincidencia (o conjunto de coincidencias) de B en A es



Podemos generalizar la notacin haciendo B = (B
1
,B
2
), donde B
1
es el conjunto forma-
do por los elementos de B asociados con un objeto y B
2
es el conjunto de los elementos
de B asociados con el fondo correspondiente. De esta manera, B
1
= X y B
2
= (W-X). Con
esta notacin, la ecuacin anterior se puede escribir



As, el conjunto AB contiene todos los puntos (origen) en los cuales, simultneamen-
te, B
1
encontr una coincidencia (hit) en A y B
2
encontr una coincidencia en A
C
. Usando
la definicin de diferencia de conjuntos y la relacin dual entre erosin y dilatacin, pode-
mos escribir la ecuacin
)) ( ( ) ( X W A X A B A
C
=
) ( ) (
2 1
B A B A B A
C
=
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 2
da
parte 5
Figura 14: a) Conjunto A. b) Una ventana, W, y el fondo local de X con respecto a W, (W-X).
c) Complemento de A. d) Erosin de A por X. e) Erosin de A
C
por (W-X). f) Interseccin de
(d) y (e), mostrando la posicin del origen de X.








































La razn por la que usamos un elemento estructural B
1
asociado con los objetos y un
elemento B
2
asociado con el background se basa en el hecho de que dos o ms conjun-
tos son distintos slo si forman conjuntos disjuntos (desconectados). Esto queda garanti-
zado si cada objeto est rodeado por un fondo de al menos un pxel de ancho. En algunas
aplicaciones, podemos estar interesados en detectar ciertos patrones de 1s y 0s dentro
de un conjunto, en cuyo caso no se requiere de un fondo. En tal caso, la transformada hit-
or-miss se reduce a una simple erosin.


)

( ) (
2 1
B A B A B A =
(f)
(a) (b)
(c) (d)
(e)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 3
ra
parte 1
Extraccin de Frontera (Boundary Extraction)

La frontera de un conjunto A, escrita como (A), se puede obtener erosionando A por B
y luego calcular la diferencia entre A y su erosin. Esto es


donde B es un elemento estructural apropiado.

A continuacin se presenta un ejemplo de la operacin de frontera. La figura 15 mues-
tra una imagen binaria y el resultado usando la ecuacin anterior con un elemento estruc-
tural de 3x3 estndar N
8
(figura 9 (b)).





















Si bien el elemento estructural usado es muy simple, existen otras elecciones ms
complejas, por ejemplo, de tamao 5x5 que ampliara el grosor de la frontera a dos o tres
pxeles.




Afinado o Adelgazamiento (Thinning)

El afinado de un conjunto A por el elemento estructural B, puede ser definido en trmi-
nos de la transformada hit-or-miss como


Una definicin ms til para el afinado simtrico de A est basado en una sucesin de
elementos estructurales

donde B
i
es una versin rotada de B
i-1
. Considerando lo anterior, definimos el afinado por
una sucesin de elementos estructurales como
) ( ) ( B A A A =
Figura 15: Imagen binaria y el resultado de la extraccin de frontera con un elemento estructural N
8
.
C
B A A B A A B A ) ( ) ( = =
} ,... , , { } {
3 2 1 n
B B B B B =
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 3
ra
parte 2


Es decir, el proceso consiste en afinar el conjunto A un paso con B
1
, luego afinar el re-
sultado con B
2
y as sucesivamente hasta B
n
. El proceso se repite hasta que no ocurren
ms cambios. Cada paso de afinado se realiza usando la primera ecuacin.

La figura 16 (a) muestra una serie de elementos estructurales frecuentemente usados
para el afinado y la figura 16 (b) muestra un conjunto A que se desea afinar aplicando el
procedimiento recin presentado. La figura 16 (c) exhibe el resultado de afinar A con B
1
, y
las figuras 16 (d) a (k) son el resultado de afinar con los B
i
restantes.








































) )...) ) ((...(( } {
2 1 n
B B B A B A =
(a)
(b) (d)
(e) (g)
(h) (j)
Figura 16: a) Secuencia de los elementos estructurales
usados para el afinado. b) Conjunto A. c) Resultado de
afinar A con el primer elemento. (d)-(i) Resultados del
afinado con los siguientes 7 elementos. j) Resultado
de afinar sucesivamente con los primeros 3 elementos.
k) Resultado final (luego de la convergencia).
(k)
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 3
ra
parte 3
Engrosamiento (Thickening)

El engrosamiento es la operacin morfolgica dual del afinado y se define mediante la
siguiente expresin


donde B es un elemento estructural apropiado para el engrosamiento. Al igual que con el
afinado, el engrosamiento se puede definir como una operacin secuencial



Los elementos estructurales usados para el engrosamiento son los mismos que los del
afinado, pero cambiando los 1s por 0s y viceversa. Sin embargo, esta implementacin no
se suele usar en la prctica. El procedimiento usual consiste en afinar el fondo del conjun-
to deseado y complementar el resultado. En otras palabras, para engrosar un conjunto A
lo que se hace es formar el conjunto C=A
C
, afinar C y luego complementar.




Relleno de Regin (Region Filling)

En ciertas aplicaciones, es conveniente poder reconstruir una imagen que ha sufrido
varias erosiones o poder llenar un objeto que est definido por una frontera. Para ello, se
puede utilizar una operacin llamada relleno de regin cuyos algoritmos estn basados en
dilataciones, complementaciones e intersecciones. La figura 17 muestra un conjunto que
contiene un subconjunto cuyos elementos estn 8-conectados y constituyen la frontera de
una regin. Comenzando por un punto p (conocido como semilla o seed) que se en-
cuentre dentro de la frontera, el objetivo es rellenar completamente la regin con 1s.

Consideremos que todos aquellos puntos que no pertenecen a la frontera son cero (el
fondo o background) y asignemos al punto p (la semilla) el valor uno. El siguiente procedi-
miento, entonces, rellena la regin determinada por el punto p con 1s:


donde X
0
=p, y B es el elemento estructural de la figura 17 (c). El algoritmo converge cuan-
do X
k
= X
k-1
. El conjunto resultante de la unin de X
k
y A contiene a la regin rellenada y
su frontera.

Es importante notar que el proceso de dilatacin rellenara todo el conjunto. Sin embar-
go, la interseccin en cada paso con A
C
limita el proceso a la regin de inters (este tipo
de dilatacin recibe el nombre de dilatacin condicionada). Aunque en este ejemplo slo
rellenamos una regin o subconjunto, el concepto puede aplicarse a un nmero finito de
regiones, siempre que conozcamos puntos dentro de stas (las semillas).

La figura 18 muestra una imagen que contiene varios crculos blancos con crculos en
negros en su interior. Este tipo de imagen puede ser el resultado de aplicar un umbral a o-
tra imagen que consista de esferas brillantes. Los crculos negros son el resultado de las
reflexiones. El objetivo es eliminar las reflexiones mediante el relleno de regin. La figura
18 (a) muestra un punto (la semilla) dentro de una de las esferas, y la figura 18 (b) mues-
C
k k
A B X X =

) (
1
,... 3 , 2 , 1 = k
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 3
ra
parte 4
tra el resultado de rellenar esa regin. Finalmente, la figura 18 (c) es el resultado de relle-
nar todas las esferas.
















































Figura 17: Relleno de regin. a) Conjunto A.
b) Complemento de A. c) Elemento
estructural B. d) Punto inicial dentro de la
frontera (semilla). (e) a (h) Varios pasos del
relleno. i) Resultado final producto de la
unin de (a) con (h).
Figura 18: a) Imagen binaria (el punto blanco dentro de una de las regiones es el punto
inicial o semilla para el algoritmo de relleno. b) Resultado de rellenar esa regin. c) Resultado
de rellenar todas las regiones.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 3
ra
parte 5
Esqueleto

El esqueleto intenta representar la forma de un objeto con un nmero relativamente pe-
queo de pxeles. De esta forma, todos los pxeles del esqueleto son estructuralmente ne-
cesarios.

La posicin, orientacin y longitud de las lneas del esqueleto se corresponden con a-
quellas equivalentes de la imagen original. La tarea de sacar caractersticas de una ima-
gen queda simplificada al obtener su esqueleto.

Como se ve en la figura 19, el concepto de esqueleto, S(A), de un conjunto A es intui-
tivamente simple. De la figura deducimos que

i) Si z es un punto de S(A) y (D)
z
es el disco ms grande centrado en z y contenido
en A, no se puede encontrar un disco ms grande (no necesariamente centrado
en z) que contenga a (D)
z
y est incluido en A. El disco (D)
z
se denomina disco
mximo.
ii) El disco (D)
z
contacta a la frontera de A en dos o ms puntos diferentes.

El esqueleto de A puede ser expresado en trminos de erosiones y aperturas. Esto es,



donde B es un elemento estructural, y (AkB) indica k erosiones sucesivas de A:


k veces, y K es el ltimo paso iterativo antes de que A sea erosionado por completo (y se
obtenga el conjunto vaco). En otras palabras


Las dos primeras expresiones sugieren que el esqueleto S(A) se puede obtener como
la unin de subconjuntos esqueleto S
k
(A). Tambin se puede demostrar que el conjunto
original A puede ser reconstruido a partir de estos subconjuntos utilizando la siguiente e-
cuacin


donde (S
k
(A) kB) representa k dilataciones sucesivas de S
k
(A); es decir













U
K
k
k
A S A S
0
) ( ) (
=
= B kB A kB A A S
k
o ) ( ) ( ) ( =
B B B A kB A = ...) ) ) (...( ) (
} ) ( | max{ = kB A k K
U
K
k
k
kB A S A
0
) ) ( (
=
=
B B B A S kB A S
k k
= ...) ) ) ) ( (...( ) ) ( (
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 3
ra
parte 6














Poda (Pruning)

Los mtodos de poda son un complemento esencial al afinado y clculo del esqueleto
ya que estos procedimientos tienden a dejar componentes parsitos que deben ser elimi-
nados luego. Comenzamos la discusin con un problema de poda y despus desarrollare-
mos una solucin morfolgica basada en operaciones ya vistas.

Una aproximacin comn en el reconocimiento automtico de caracteres manuscritos
es analizar la forma de los esqueletos de cada caracter. Estos esqueletos frecuentemente
estn caracterizados por espuelas (o puntas o crestas) que constituyen componentes pa-
rsitos. stos se originan durante la erosin por no uniformidades en los trazos que for-
man los caracteres. Vamos a considerar que la longitud de los componentes parsitos no
exceden un determinado nmero de caracteres.

La figura 20 (a) muestra el esqueleto de una a manuscrita. El complemento parsito
sobre el lado izquierdo del caracter es lo que queremos eliminar. La solucin est basada
en suprimir una bifurcacin mediante la eliminacin sucesiva de su punto final. Esto tam-
bin eliminar cualquier otra bifurcacin en el caracter pero, en este ejemplo vamos a a-
sumir que cualquier bifurcacin de 3 o menos pxeles ser eliminada. El afinado de un
conjunto A con una secuencia de elementos estructurales diseados slo para la detec-
cin de puntos finales realiza la tarea deseada. Esto es


donde {B} representa la secuencia de elementos estructurales mostrados en las figuras 20
(b) y (c). Los elementos estructurales consisten de dos estructuras diferentes y donde ca-
da una est rotada 90 grados.

Aplicando tres veces la ecuacin anterior a A se consigue el conjunto X
1
mostrado en la
figura 20 (d). El siguiente paso es restaurar el caracter a su forma original, pero sin las bi-
furcaciones parsitas. Para hacer esto, primero se debe formar el conjunto X
2
de manera
que contenga todos los puntos finales en X
1
:


donde los B
k
son los mismos detectores de puntos finales mostrados en la figura 20 (b) y
(c). El siguiente paso es dilatar tres veces los puntos finales, usando al conjunto A como
delimitador:
Figura 19: a) Conjunto A. b) Varias
posiciones de los discos mximos con
centro en el esqueleto de A. c) Otro
disco mximo ubicado en un
segmento diferente del esqueleto de
A. d) Esqueleto completo.
} {
1
B A X =
U
8
1
1 2
) (
=
=
k
k
B X X
A H X X = ) (
2 3
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias 3
ra
parte 7
donde H es un elemento estructural de 1s.

Finalmente, el resultado deseado se obtiene de la unin de X
3
y X
1
(figura 20 (g)).










































Referencias

1) Digital Image Processing Second Edition, Rafael C. Gonzalez Richard E. Woods,
captulo 9.

3 1 4
X X X =
Figura 20: Imagen original. (b) y (c) Elementos estructurales usados para borrar
los puntos finales. d) Resultado luego de 3 procesos de afinado. e) Puntos finales
de (d). Dilatacin de los puntos finales condicionada por A. g) Imagen podada.
Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias - Apndice 1
Apndice

Ahora que hemos presentado las operaciones morfolgicas ms comunes que se em-
plean sobre imgenes binarias, vamos a construir algoritmos en scripts de Matlab que re-
alicen estos procedimientos de la forma ms genrica posible, de manera que puedan ser
programados en otro lenguaje sin mayores inconvenientes.


Traslacin

Supongamos que el origen de coordenadas de la imagen se encuentra en su centro.
Luego la traslacin de una imagen binaria contenida en a por el punto x se realiza como
sigue

at=zeros(size(a));
x=[-50 -50];

% Determino los limites de los indices para no exceder las dimensiones de la
%imagen
nMax=min(n,n-x(1));
nMin=max(1,-x(1)+1);
mMax=min(m,m-x(2));
mMin=max(1,-x(2)+1);

for i=nMin:nMax
for j=mMin:mMax
at(i+x(1),j+x(2))=a(i,j);
end
end
imshow(a), title('Imagen Original')
figure, imshow(at), title('Imagen Trasladada')


Reflexin

Ahora veamos como se refleja la imagen resultante de la traslacin anterior respecto a
su origen:

% El punto sobre el cual se realiza la reflexion es el centro de la imagen
b=zeros(size(a));
for i=1:n
for j=1:m
b(i,j)=at(n-i+1,m-j+1);
end
end
imshow(at), title('Imagen Original')
figure, imshow(b), title('Imagen Reflejada')


Resta de imgenes

En este punto es necesario tener en cuenta el tipo de datos con el que se est traba-
jando, es decir, datos binarios, 1s y 0s, blanco y negro. Por ello, aquellos valores negati-
vos en los pxeles que se obtienen como resultado de una resta carecen de sentido (en
realidad, les corresponde el valor 0). Nunca obtendramos estos resultados si considera-
mos la otra definicin para la resta: A-B = A B
C
. Concretando

Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias - Apndice 2
res=a-at;
imshow(a)
figure , imshow(res)



at_complemento=1-at;
res=and(a,at_complemento); % interseccin de a y at_complemento
imshow(a)
figure , imshow(res)


Dilatacin

Recordemos la idea intuitiva de la dilatacin:
Tomar cada pxel del objeto (con valor 1) y setear al valor 1 todos aquellos pxeles
pertenecientes al fondo (background) que tienen una conectividad C (C=4, C=8, etc) con
el pxel del objeto. En pocas palabras, poner a 1 los pxeles del fondo vecinos a los pxe-
les del objeto.

Teniendo en cuenta lo anterior, consideremos que a contiene la imagen binaria que de-
seamos dilatar y que el elemento estructural est dado por una vecindad 4. Entonces, el
algoritmo siguiente realiza la dilatacin buscada. Cabe aclarar que en lo que sigue, los p-
xeles pertenecientes al objeto tienen el valor 1 que corresponte al color blanco.

[n,m]=size(a);
dilatada=zeros(size(a));
for i=2:n-1
for j=2:m-1
dilatada(i,j)=a(i,j);
if (a(i,j)==0 & (a(i,j-1)==1 | a(i-1,j)==1 | a(i,j+1)==1 | a(i+1,j)==1))
dilatada(i,j)=1;
end
end
end


Erosin

Repasemos ahora la idea intuitiva de la erosin:
Tomar cada pxel del objeto que tiene una conectividad C con los pxeles del fondo y
setearlo al valor 0. En otras palabras, poner a 0 los pxeles del objeto vecinos a los p-
xeles del fondo.

Como se ve, la idea es casi la misma que para la dilatacin. Luego

erosionada=zeros(size(a));
for i=2:n-1
for j=2:m-1
erosionada(i,j)=a(i,j);
if (a(i,j)==1 & (a(i,j-1)==0 | a(i-1,j)==0 | a(i,j+1)==0 | a(i+1,j)==0))
erosionada(i,j)=0;
end
end
end


Universidad Nacional de Quilmes Ing. en Automatizacin y Control Industrial
Ctedra: Visin Artificial Agosto de 2005

Operaciones Morfolgicas en Imgenes Binarias - Apndice 3
Por ltimo, comparemos los resultados de nuestros algoritmos de dilatacin y erosin
con los obtenidos con funciones de Matlab:

B=[0 1 0;1 1 1;0 1 0]; % ELEMENTO ESTRUCTURAL 4-conectado

dilatada_matlab=imdilate(a,B);
figure, subplot(1,2,1), imshow(dilatada)
title('Dilatacion con algoritmo intuitivo')
subplot(1,2,2), imshow(dilatada_matlab)
title('Dilatacion con "imdilate" de Matlab')

erosionada_matlab=imerode(a,B);
figure, subplot(1,2,1), imshow(erosionada)
title('Erosion con algoritmo intuitivo')
subplot(1,2,2), imshow(erosionada_matlab)
title('Erosion con "imerode" de Matlab')