Beruflich Dokumente
Kultur Dokumente
Tcnicas de preprocesado
115
Carlos Platero
ellas pueden ser luego trasladadas a imgenes en color. Sin embargo, no se puede
generalizar. Las tcnicas de preprocesado sobre imgenes en color requieren un
tratamiento diferenciado.
116
h(i )
M N
(4. 1)
Brillo = =
1
M N
I 1
f ( x, y ) = i p(i )
x =1 y =1
(4. 2)
i=0
Donde f(x,y) retorna el nivel de gris del pxel situado en las coordenadas (x,y), I
es el nmero de grises que se ha empleado en el proceso de cuantificacin de la imagen.
Una imagen que presente un valor de brillo mayor que otro sobre la misma escena,
indica que el nivel de radiacin medio que ha llegado a la cmara es mayor en una
imagen que en otra, bien por que se disminuy el nmero F de diafragma o por que se
vari el tiempo de integracin. Este efecto se observa en el histograma como un
desplazamiento neto hacia la derecha del eje de abscisa. A medida de que la imagen
parezca ms clara, el histograma se mueve hacia valores ms altos de los niveles de
grises. La variacin del brillo se efecta con la operacin aritmtica de suma o resta a
cada pxel de una cantidad determinada.
Imagen de entrada
Imagen de entrada + 50
1000
1000
500
500
0
0
100
200
100
200
117
Carlos Platero
Contraste = 2 =
1
M N
1
M N
( f (x, y ) )
x =1 y =1
I 1
I 1
i =0
i =0
2
2
(i ) h(i ) = (i ) p(i )
(4. 3)
Energa = p (i )
i =0
(4. 4)
Entropa = p (i ) log( p (i ))
i=0
(4. 5)
i ' = T (i )
(4. 6)
118
( i amin )
iout 0
= in
( I 1) 0 amax amin
iout =
I 1
( iin amin )
amax amin
(4. 7)
Ejemplo 4.1
Adecuar el rango dinmico de una imagen de resonancia magntica,
cuyos valores varan entre el nivel de gris de 0 a 88. Ntese el carcter
saturado de la adquisicin.
iout =
Histograma original
255
iin
88
Transformacin
250
1600
Histograma modificado
1600
1400
200
1400
1200
1200
1000
150
1000
800
800
600
100
600
400
400
50
200
200
50
100
150
200
250
50
100
150
200
250
100 200
119
Carlos Platero
Resolucin Matlab
>>imagen=imread(mri.tif`);
>>imhist(imagen);
>>max(max(imagen))
>>imagen_sal=imadjust(imagen);
>>imhist(imagen_sal);
>>imshow([imagen,imagen_sal]);
>>std2(imagen),std2(imagen_sal)
Evidentemente, las transformaciones no necesariamente deben ser lineales. Por
ejemplo, las siguientes operaciones consiguen el negativo de la imagen de entrada y
variaciones diferentes del contraste:
T1 (i ) = I i T2 (i ) =
i2
I
T3 (i ) = I i T4 (i ) = i
(4. 8)
120
F (r ) = p (i )
i=0
I 1
F (I 1) = p (i ) = 1
(4. 9)
i =0
F (r ') = p (i ) = (r + 1)
i =0
1
I
(4. 10)
F (r ') = F (r )
(r + 1) 1 = F (r )
I
r = F (r ) I 1
(4. 11)
121
Carlos Platero
Imagen de entrada
Imagen ecualizada
Histograma de entrada
Histograma ecualizado
1000
800
600
500
400
200
0
0
0
100
200
100
200
Resolucin Matlabs
>>imagen=imread(tire.tif`);
>>imhist(imagen);
>>imagen_sal=histeq (imagen);
>>imhist(imagen_sal);
Ejemplo 4.2
Se tiene esta subimagen:
5
8
4
2
1
1
0
4
4
1
5
4
6
0
5
0
5
5
1
4
1
3
5
2
1
5
5
4
0
3
3
1
4
5
1
6
5
3
5
0
1
3
2
6
2
3
1
3
3
5
0
0
2
2
1
2
0
6
2
5
2
4
0
3
2
2
1
8
1
6
4
6
0
3
4
5
1
2
0
1
2
1
3
8
5
4
4
2
6
1
6
3
8
2
7
1
5
1
5
4
Calcular:
122
1. Histograma
2. Brillo, contraste, energa y entropa
3. Ecualizacin del histograma.
Nivel de gris
Ocurrencias
11
19
15
12
13
17
Probabilidad
0.11
0.19
0.15
0.12
0.13
0.17
0.08
0.01
0.04
Nivel de gris
de salida
(-0.01)
(1.7)
(3)
(4.13)
(5.3)
(6.83)
(7.55)
(7.64)
(8)
12
67
78
78
11
19
15
12
13
17
13
13
13
Histograma
ecualizado
4.1.3
Las componentes de alta frecuencia estn relacionadas con los bordes de los
objetos y con los pequeos detalles de la imagen. El aumento del contraste puede estar
basado en una combinacin lineal entre la imagen original y el resultado de un filtro
paso alto. La imagen salida ser:
Imagen Salida = A*(Imagen) - (Paso bajo de la Imagen)
= (A-1) *(Imagen) +(Imagen) -(Paso bajo de la Imagen)
= (A-1) *(Imagen) + (Paso alto de la Imagen)
123
Carlos Platero
0 0 0 1 1 1
0 1 0 1 4 1
0 0 0 0 1 0
(4. 12)
Resolucin Matlab
>>imagen=imread(cameraman.tif`);
>>H=fspecial(unsharp,0)
>>imagen_sal=imfilter (imagen, H);
>>imshow([imagen,imagen_sal]);
124
iluminacin sobre los objetos y de otro la funcin de refraccin de los cuerpos vistos en
la escena. A esta categora de ruido se le relacionado con los filtros homomrficos.
Imagen original
g ( x, y ) = f ( x, y ) + r ( x, y )
(4. 13)
Se define ruido blanco a una variable aleatoria con funcin de densidad normal, de media cero
y varianza determina, N(0,2).
125
Carlos Platero
n n
i =1
E ( g ( x, y )) = lim
(4. 14)
N 0,
(4. 15)
126
f ( x, y ) =
1
M N
M /2
N /2
f ( x + i, y + j )
i = M / 2 j = N / 2
(4. 16)
1 1 1
1
1 1 1
9
1 1 1
(4. 17)
n
f
mscara 2
0
1
1
0
1 1/2
11
1/4
2 1/4
121
1/2
3 1/8
1 3 3 1 3/4
4 1/16 1 4 6 4 1 1
n es el grado del filtro, f es el factor de escala y 2 es la varianza efectiva de la
mscara respecto al filtro de Gauss. Los filtros binomiales bidimensionales se
construyen mediante la convolucin discreta de un filtro binomial unidimensional con l
mismo y su traspuesta:
h2nD = hxn * h yn
(4. 18)
2
2D
1
1 2 1
1
1 1
= h * h = (1 2 1) * 2 = 2 4 2
4
4 16
1
1 2 1
2
x
2
y
(4. 19)
127
Carlos Platero
h ( x, y ) = e
(x
+ y2
2 2
)
(4. 20)
Las respuestas en frecuencia de estas mscaras son filtros pasos cuyos anchos de
banda dependen de sus varianzas. No presentan rizados o lbulos secundarios en el
mdulo y son de fase lineal. Al igual que los filtros binomiales, las mscaras de Gauss
bidimensionales se construyen a partir de las unidimensionales. Su ventaja, respecto a
los filtros binomiales, est en su parametrizacin dependiendo de la varianza. A medida
de que la varianza sea ms elevada significar que tiene en cuenta a vecinos ms
alejados, por el contrario, si la varianza es ms pequea indicar que slo ponderar con
los ms prximos. La varianza funciona como grado de ponderacin en la vecindad.
sta es la interpretacin en el dominio espacial. Desde el punto de vista frecuencial, la
varianza determina el ancho de banda del filtro paso bajo que supone la mscara de
Gauss. El lbulo principal del mdulo de la respuesta frecuencia viene determinado por
la varianza. A mayor varianza menor ancho de banda.
128
w 3c
Siendo c el tamao del lbulo central y dependiente de la varianza:
c = 2 2 2
(4. 22)
Esta regla indica que el 98% de los posibles casos de la variacin de la variable
aleatoria normal estn comprendidos. Si la varianza es unitaria, la mscara debera de
ser al menos 9 x 9. Ntese que se busca una mscara bidimensional que tenga simetra
par. Tambin hay que considerar que esta mscara tiene simetra radial, por lo que slo
es necesario de calcular un cuadrante de la mscara.
Ejemplo 4.3
Determinar la mscara de Gauss
para una varianza de 0.25 y 1.
El tamao de la mscara para 0.25
ser:
c = 2
2
= 2w3
4
1
1
0.1353
0.1353
1.6154
129
Carlos Platero
Imagen de entrada
Filtro promediado
Filtro binomial
Filtro gaussiano
Resolucin Matlab
>>h1=fspecial('average')
>>h2=conv2([1 2 1],[1 2 1]')/16
>>h3=fspecial('gaussian')
>>imagen= imnoise(imread('cameraman.tif'));imshow(imagen);
>>imagen1=imfilter(imagen,h1);imshow(imagen1);
>>imagen2=imfilter(imagen,h2);imshow(imagen2);
>>imagen3=imfilter(imagen,h3);imshow(imagen3);
Al igual que los filtros binomiales, los gaussianos bidimensionales tambin se
construyen mediante la convolucin discreta de un filtro gaussiano unidimensional con
l mismo y su traspuesta. Esta propiedad es utilizada para disminuir el coste
computacional.
y por debajo de los M ltimos. Por ejemplo, en un entorno de 3x3, la mediana ser el
nivel del colocado en quinta posicin:
89 87 14
92 75 56
99 78 90
Resolucin Matlab
>>h=fspecial('gaussian')
>>imagen= imnoise(imread('circuit.tif'),'salt & pepper');imshow(imagen);
>>imagen1=imfilter(imagen,h);imshow(imagen1);
>>imagen2=medfilt2(imagen);imshow(imagen2);
4.2.5 Filtros homomrficos
El caso de iluminacin no uniforme en la escena capturada es un ejemplo de
ruido multiplicativo. La formacin de la imagen depende bsicamente de la iluminacin
sobre los objetos y del tipo de superficie de stos. La intensidad en la imagen puede ser
Dpto. Electrnica, Automtica e Informtica Industrial
131
Carlos Platero
f ( x, y ) = i ( x, y ) o ( x, y )
(4. 23)
f(x,y) ser la intensidad del pxel, i(x,y) ser el efecto de la iluminacin y o(x,y)
corresponder a la funcin de reflactancia de la escena. Si se convolucionase la imagen
con cualquier filtro, atacara indistintamente a ambas componentes de iluminacin y
reflactancia. La forma de proceder es aplicar un sistema homomrfico capaz de separar
los efectos y procesar por separado. Los sistemas homomrficos son operaciones de
aplicar una funcin, procesar y aplicar su inversa. Por ejemplo, la funcin logartmica y
su inversa la exponencial.
Para el caso que ocupa, la forma de separar los efectos es mediante la funcin
logartmica. Al aplicarla es posible obtener la respuesta frecuencial por separado de las
componentes de iluminacin y refractancia:
ln( f ( x, y )) = ln (i ( x, y )) + ln (o( x, y )) F (ln ( f ( x, y ))) = F (ln (i( x, y ))) + F (ln (o( x, y )))
(4. 24)
El espectro del efecto de iluminacin estar dominado por la baja frecuencia, ya
que los cambios de iluminacin en la escena son paulatinos, por el propio carcter
continuo de la luz. Sin embargo, los bordes de las superficies, los contactos entre los
objetos y sus intersecciones, tendrn un perfil claramente de mayor frecuencia. Por
tanto, la aplicacin de un filtro paso alto, atenuar la falta de iluminacin uniforme y
realzar los bordes entre los objetos. Esta algoritmia acaba empleando la funcin
inversa, despus de haber filtrado las dos componentes. En la figura se muestra el
diagrama a bloques del algoritmo.
en una jerarqua de caractersticas visuales, donde agrupa los elementos primarios de los
contornos en objetos geomtricos ms complejos hasta la interpretacin de las figuras.
Este subsistema biolgico es capaz de completar bordes parcialmente ocluidos o
explcitamente eliminados. En los contornos subjetivos de Kanizsa, figura 4.10, ntese
como al visualizarlos quedan completos, aunque los objetos geomtricos estn
inacabados.
Bordes de una escena de bodegn
Otro
experimento
psicofisiolgico es la capacidad de
interpretar la imagen con slo
apreciar los bordes de la escena. En la
figura adjunta se presenta la imagen
con slo los bordes. Es fcil de
interpretar que es una escena de
bodegn.
Estos aspectos son aplicados
y emulados en la Visin Artificial. Figura 4. 11. Imagen de contornos
La deteccin automtica de bordes es
una tarea esencial en muchas aplicaciones de interpretacin de las imgenes. Suele ser
una etapa muy empleada para las tareas de segmentacin o para la bsqueda de objetos
geomtricos ms complejos como lneas, elipses, esquinas, etc.
Se entiende como borde aquella regin donde aparece una fuerte variacin del
nivel de intensidad en los pxeles adyacentes. Su causa principal es originada por la
interseccin de varios objetos, con diferentes niveles de reflactancia, que al ser
proyectados sobre la cmara generan discontinuidades de intensidad en los pxeles
correspondidos. Sin embargo, estas discontinuidades tambin aparecen de forma no
deseada por la presencia del ruido, por el efecto de sombras sobre los propios objetos o
por una iluminacin no uniforme dentro la escena.
El fundamento para la deteccin de los bordes est en la aplicacin del operador
derivada en un entorno de vecindad. Si se construye una imagen sinttica con franjas de
alto contraste y se adquiere una fila de la imagen, se observar una fuerte variacin de la
intensidad en el entorno de los
bordes de las franjas. Al aplicar el
Lnea 16
operador derivada, se observa que
sta toma un valor de mximo o
mnimo justamente cuando en la
transicin se pasa de cncavo a
convexo o viceversa, esto es, en el
punto de inflexin del borde. Si en
vez de emplear la primera derivada
se realiza con la segunda, el punto
de inflexin de la primera deriva
coincidir con un paso por cero
(zero-crossing).
Ambos
razonamiento son empleados para
la deteccin de los bordes. Cuando
Figura 4. 12. Bordes ideales
Dpto. Electrnica, Automtica e Informtica Industrial
133
Carlos Platero
Perfil de la lnea 15
150
100
La presencia de ruido
en la imagen, la cual
produce
variaciones
locales de intensidad,
produce falsos bordes al
aplicar los operadores
derivadas. Por esta
razn, la deteccin de
bordes est ligada a
etapas de eliminacin
del ruido.
50
10
15
20
25
30
35
30
35
30
35
10
15
20
25
10
15
20
25
f ( x, y ) = f ( x, y ) + f ( x, y )
f ( x, y )
x y
f ( x, y )
f ( x, y ) = f (xx, y )
f ( x, y ) = arctan
y
f ( x, y )
134
(4. 25)
Imagen sinttica
16
14
12
10
8
6
4
2
5
10
15
20
f ( x, y ) > T
f ( x, y ) < T
(4. 26)
f ( x, y )
f ( x, y ) f ( x, y )
+
x
y
(4. 27)
135
Carlos Platero
derivadas por las diferencias, stas suelen emplear el truncamiento del desarrollo de
Taylor obteniendo las diferencias progresivas y regresivas:
f + ( x, y ) f ( x + x, y ) f ( x, y )
x
x
f + ( x, y ) f ( x, y + y ) f ( x, y )
y
y
f ( x, y ) f ( x, y ) f ( x x, y )
x
x
f ( x, y ) f ( x, y ) f ( x, y + y )
y
y
(4. 28)
x
2x
f (x, y ) f ( x, y + y ) f ( x, y y )
(4. 29)
y
2y
f 1, 1
f 0 ,1
f
1, 1
f 1, 0
f 0 ,0
f 1, 0
f 1,1
x
f 0 ,1
f
f 1,1
y
(f
1, 1
+ f 1, 0 + f 1,1 ) ( f 1, 1 + f 1, 0 + f 1,1 )
x
0,0
(f
1,1
+ f 0 ,1 + f 1,1 ) ( f 1, 1 + f 0 , 1 + f 1, 1 )
0,0
(4. 30)
0 0 0 1 0 1
1 1 1 1 0 1
x
y
(4. 31)
El operador derivada resulta ser muy sensible con el ruido, ya que su respuesta
frecuencial tiende a ser un filtro paso alto. Para reducir el realce de ste se propone una
mscara que sea la convolucin entre el operador derivada con un filtro binomial,
obtenindose las mscaras de Sobel:
136
1 2 1 1 0 1
1 0 0 0 2 0 2
S = DT * B = {1 0 1} * 2 1 2 1 1 0 1
1
x
y
(4. 32)
Mientras que Prewitt detecta mejor los bordes verticales, Sobel mejora su
localizacin en los bordes diagonales. El operador isotrpico o de Frei-Chen intenta
llegar a un compromiso entre ambos:
1 2
0
0
2
1
2
1
0
0
0
2
1
(4. 33)
Resolucin Matlab
>>imagen= imread('cameraman.tif');imshow(imagen);
>>imagen1=imfilter(imagen,fspecial(prewitt));imshow(imagen1);
>>imagen2= imfilter (imagen, fspecial(sobel);imshow(imagen2);
4.3.2 Operadores basados en la laplaciana
Para la deteccin de bordes, empleando la laplaciana, sern aquellos pxeles que
sean paso por cero. El operador laplaciana se define en el dominio continuo como:
137
Carlos Platero
2 f ( x, y ) =
2 f ( x, y ) 2 f ( x , y )
+
x 2
y 2
(4. 34)
0 1 0
x 2
x 2
1 4 1
2
f ( x, y ) f ( x, y + 1) 2 f ( x, y ) + f ( x, y 1)
0 1 0
y 2
y 2
(4. 35)
1 1 1
1 8 1
1 1 1
(4. 36)
138
Resolucin Matlab
>>imagen= imread('cameraman.tif');imshow(imagen);
>>imagen1=imfilter(imagen,fspecial(sobel));imshow(imagen1);
>>imagen2= imfilter (imagen, fspecial(log);imshow(imagen2);
El mayor inconveniente del operador laplaciana es su sensibilidad al ruido. Para
disminuir los falsos bordes, se hace interaccionar con un filtro paso bajo, dando paso al
operador laplaciana de Gauss (LoG).
139
Carlos Platero
2 ( f ( x, y ) * h ( x, y )) = f ( x, y ) * 2 (h ( x, y )) = f ( x, y ) * LoG ( x, y )
(4. 37)
h ( x ) = e
x2
2 2
x2
dh
x 2
= 2 e 2
dx
x2
d 2 h x 2 2 2 2
=
e
dx 2
4
(4. 38)
140
(4. 39)
Segn Marr y Hildreth, este proceder DoG se asemeja al operador LoG, cuando
las varianzas se encuentran en una relacin de:
22
12
= (1.6 )
(4. 40)
c = 2 2 2
(4. 41)
(4. 42)
141
Carlos Platero
h ( x, y )
DroG ( x, y ) = h (xx, y )
(4. 43)
142
Resolucin Matlab
>>imagen= imread('cameraman.tif');
>>im1=edge(imagen, prewitt); im1=edge(imagen, sobel);
>>im1=edge(imagen, log); im1=edge(imagen, canny);
>> imshow([im3,im1;im2,im4])
4.4 Cuestiones
1.
2.
143
Carlos Platero
3.
4.
5.
6.
7.
8.
4.5 Problemas
Ejercicio 1
Dada la imagen de la figura, calcular la transformacin mediante LUT para
aumentar su contraste.
1200
1000
800
600
400
200
50
100
150
200
250
La imagen est saturada, por tanto, en una primera aproximacin se podra una
LUT de forma:
iout =
255
( iin I min )
255 I min
Ejercicio 2
Dada la siguiente imagen de entrada junto con la LUT, determinar la
imagen de salida.
144
0
0.5
0.5
0.5
1
0.2
0.3
0.4
0.9
1
0.2
0.3
0.4
0.9
0.8
0.8
0.8
0.8
0.8
0.8
0.2
0.3
0.4
0.9
Ejercicio 3
Para la siguiente figura, con 8 niveles de grises de cuantificacin,
obtener:
a)Histograma
b)Brillo y contraste
c) Ecualizacin del histograma
1
1
1
2
2
2
1
1
0
nivel(i)
h(i)
p(i)
0
6
0.06
1
33
0.33
1 2 0 2 2 1 3 1 1
1 3 3 3 3 2 2 1 0
1 2 2 5 3 2 2 1 1
2 3 6 6 6 2 2 1 1
2 6 7 7 6 6 1 1 1
2 6 6 7 6 6 0 3 2
2 2 6 5 5 3 2 1 1
1 2 3 5 5 3 2 1 0
1 1 3 3 3 3 2 2 1
1 1 1 1 2 1 1 1 0
2
26
0.26
3
16
0.16
4
0
0
5
5
0.05
6
11
0.11
7
3
0.03
brillo = = i p (i ) = 2.45
i =0
7
contraste = 2 = (i ) p (i ) = 3.52
2
i =0
145
Carlos Platero
Nivel de gris
de entrada
Nivel de gris
de salida
(-0.52)
(2.12)
(4.2)
(5.48)
(5.48)
(5.88)
(6.66)
(7)
56
56
33
26
16
16
14
14
Histograma
ecualizado
Ejercicio 4
Dada la siguiente imagen, calcular para el pxel marcado, la media y
mediana en un entorno de 3x3:
6
6
7
6 7
2 6 6 5
7 4 5 7
7 7 5 6
5
Ejercicio 5
Dada la siguiente imagen, calcular para el pxel marcado el mdulo y la
direccin del gradiente, empleando los operadores de Sobel:
1
1
1
10 10
1 10 10 10
1 10 10 10
1 10 10 10
10
f ( x, y )
= 36
y
146
Ejercicio 6
Calcular las mscaras de las derivadas de Gauss 2D para una = 0.5 ,
sabiendo que el tamao corresponde a 3x3. Aplquese sobre el pxel
seleccionado para determinar el mdulo del gradiente y su orientacin. Indique
cmo lo implementara para aumentar su eficiencia computacional.
1
1
1
10 10
1 10 10 10
1 10 10 10
1 10 10 10
10
h ( x ) = e
2 2
1
{0.135 1 0.135}
1.27
dh
x 2
= 2 e 2 {0.54 0 0.54}
dx
= 0
0
0
= 0.425 0 -0.425
x
0.057 0 0.057
0.057 -0.425 0.057
=0
f ( x , y )
y
= 4.85
f ( x, y ) = 4.85 arg ( f ( x, y ) ) =
Ejercicio 7
Calcular la mscara de la laplaciana de Gauss para una = 0.5,
sabiendo que el tamao es de 5x5. Aplquese sobre el pxel seleccionado.
147
Carlos Platero
1
1
1
1
10 10
10 10 10
10 10 10
10 10 10
10 10 10
10
1
1
1
1
h = e
x2 + y 2
2 2
( x 2 + y 2 2 2 )
0
0.0003
0
0
0
h n
0
0.0003
0
0
0
Aadiendo el trmino
(x
+ y 2 2 2 )
de Gauss:
0
0.0116
0
0
0
148
149