Sunteți pe pagina 1din 127

Procesamiento de

Imgenes

Guido E. Ochoa Moreno


Revisin 8

1997 - 2015

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 1

Copyright 2015, Guido Eduardo Ochoa Moreno.


Permiso para copiar, distribuir y/o modificar este documento segn los trminos de la
Licencia de Documentacin Libre GNU, Versin 1.1 o cualquier otra versin posterior
publicada por la Free Software Foundation.

http://www.gnu.org/licenses/licenses.es.html#FDL
http://www.gnu.org/copyleft/fdl.html

Hay una fuerza motriz ms poderosa que el


vapor, la electricidad y la energa atmica:
la voluntad.
Albert Einstein

Biografa
Guido Eduardo Ochoa Moreno es ingeniero Electrnico y Master en Ciencias
Mencin en Ingeniera Electrnica de la Escuela Politcnica del Ejrcito, ingeniero
Industrial de la Escuela Politcnica Nacional y mster en Alta Gerencia en el IAEN.
Profesor a tiempo parcial de la Universidad Catlica del Ecuador de la Facultad de
Ingeniera en la Escuela de Sistemas. Especialista en el desarrollo de grandes sistemas
de informacin. Las reas de inters e investigacin son el reconocimiento de
patrones, procesamiento de seales, procesamiento de imgenes, sistemas expertos,
algoritmos genticos, redes neuronales, telemtica, y herramientas matemticas
como la transformada de Fourier y Wavelets. Consultor internacional en Sistemas de
Informacin y desarrollo de sistemas basados en herramientas de software libre GNU
como Linux, postgreSQL, groovy, grails, java y python.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 2

ndice de contenido
Introduccin...............................................................6
Procesamiento de Imgenes.......................................6
Repaso de Matemticas.............................................7
2.1 Funciones Pares e Impares....................................8
2.2 Funciones peridicas.............................................9
2.3 Series de Fourier.................................................11
2.4 Serie Compleja de Fourier..................................15
2.4.1 Prctica de Octave.......................................16
2.5 La Transformada de Fourier...............................17
2.6 La transformada de Fourier Discreta..................19
2.7 Secuencias...........................................................20
2.7.1 Operaciones con Secuencias........................21
2.7.2 La Convolucin...........................................22
2.7.3 Rango de la Convolucin.............................23
2.7.4 Filtrado mediante la Convolucin................24
2.8 Problemas...........................................................26
Introduccin a Imgenes..........................................29
3.1 Elementos de percepcin visual..........................30
3.2 Modelo simple de una imagen.............................30
3.3 Digitalizacin de imgenes (Muestreo y Cuantizacin)..........................................................................32
3.3.1 Resolucin de una imagen...........................34
3.3.2 Cuantizacin no uniforme...........................34
3.4. Relaciones bsicas entre pixeles.........................34
3.4.1 Vecindad de un pxel...................................34
3.4.2 Conectividad................................................35
3.4.3 Medida de distancia.....................................35
3.4.4 Operaciones Aritmticas y Lgicas.............36
3.4.4.1 Operaciones Aritmticas......................37
3.4.4.2 Operaciones Lgicas............................37
3.4.4.3 Reconocimiento simple con AND y
XOR.................................................................38
3.5 Geometra de imgenes.......................................39
3.5.1 Traslacin o Desplazamiento.......................40
3.5.2 Escalamiento...............................................41
3.5.3 Rotacin......................................................42
3.6 Funciones sobre imgenes...................................45
3.6.1 Uso de las funciones de imgenes para hacer
reconocimiento.....................................................48
3.7 Problemas...........................................................50
Mejoramiento de Imgenes......................................54
4.1 Mejoramiento de Imgenes.................................55
4.2 Mejoramiento por procesamiento de punto (pixel)
..................................................................................55
4.2.1 Negativo de una imagen...............................55
4.2.2 Aclarar u Oscurecer imgenes.....................56
4.2.3 Contraste Stretching....................................57
4.2.4 Cambio del nmero de niveles de gris de una
imagen..................................................................58
4.2.5 Ajuste de rango dinmico............................58
4.2.6 Mejoramiento por Histograma.....................59
4.2.7 Mejoramiento Local....................................60
4.2.8 Mejoramiento por Sustraccin de imgenes 60
4.2.9 Mejoramiento por el Promedio de imgenes
.............................................................................61
4.3 Filtrado Espectral................................................61
4.4 Filtrado Espacial.................................................64
Procesamiento de Imgenes

4.4.1 Mascarilla de los filtros Pasa Bajos o Filtro


Suavizante.............................................................65
4.4.2 Filtros pasa altas o Filtro Realzantes............65
4.4.3 Filtros de nfasis en frecuencias altas Highboost.....................................................................66
4.4.4. Filtros Derivativos......................................66
4.4.5 Modo de aplicacin de la mascarilla............66
4.5 Problemas..........................................................69
Procesamiento en Color...........................................71
5.1 Modelos de Color................................................72
5.1.1 Modelo RGB...............................................72
5.1.2 Modelo CMY..............................................73
5.1.3 Modelo YIQ................................................74
5.1.4 Diagrama de Cromancia..............................75
5.1.5 Modelo HSI.................................................75
5.2 Conversin de modelos de color..........................75
5.2.1 De RGB a CMY..........................................76
5.2.2 De CMY a RGB..........................................76
5.2.3 De RGB a YIQ............................................76
5.2.3 De YIQ a RGB............................................77
5.2.4 De RGB a HSI.............................................77
5.2.5 De HSI a RGB.............................................77
Escala de grises manejando intensidades de color.....78
5.2.6 De RGB a CMY-K......................................79
5.3 Aplicaciones de color..........................................80
5.4 Pseudocolor.........................................................82
5.4 Problemas...........................................................85
Restauracin de Imgenes........................................88
6.1 Uso de Filtros espaciales.....................................90
6.2 Filtro de mediana................................................91
6.3 Escalamiento de Imgenes..................................91
6.3.1 Escalamiento de Imgenes en general..........93
6.4 Filtrado en el Dominio de la Frecuencia.............95
6.5 Problemas...........................................................96
Compresin de Imgenes.........................................97
7.1 Compresin en Imgenes de FAX.......................99
7.2 Compresin sin prdidas...................................101
7.2.1 Codificacin de Huffman...........................101
7.3 Problemas.........................................................104
Reconocimiento de Imgenes................................105
8.1 Tecnologas Relacionadas.................................106
8.2 Reconocimiento de Caracteres..........................106
8.2.1 Un OCR en imgenes simples y perfectas. 107
8.2.2 OCR en imgenes digitalizadas.................108
8.2.3 Reconocedor estadstico............................108
8.3 OCR sobre imgenes de fax o caracteres impresos
................................................................................109
8.3.1 Uso de detectores de bordes......................109
8.4 Reconocimiento de Smbolos y caracteres manuscritos.......................................................................110
8.4.1 Mtodo de silueta......................................111
8.4.2 Mtodo de deficiencias de convexidad.......112
8.4.3 Mascarilla de vectores...............................113
8.5 Redes Neuronales..............................................114
8.5.1 Redes tipo Retropropagacin (Backpropagation) para el reconocimiento de dgitos...............114
8.6 Uso de mltiples mtodos.................................115

Guido Ochoa Moreno

Pgina 3

8.7 Tcnicas para el manejo de las invarianzas.......116


8.7.1 Invarianza al desplazamiento.....................116
8.7.2 Invarianza a la rotacin..............................117
8.7.3 Invarianza a la rotacin y la escala.............117
8.8 Problemas.........................................................118
Operaciones bsicas de matrices:...........................119
DEBER..................................................................120
Ejemplo de una funcin en Octave....................120
Filtrado pasa bajos y pasa altos usando la FFT con Octave.........................................................................121

Instalando paquetes en Octave................................133


Aplicaciones prcticas...........................................136
1. Cambio de color de una imagen usando un rango de
tolerancia................................................................136
2. Cambiar un color determinado de una imagen a
transparente.............................................................137
3. Mejorar una imagen con filtro high boost............138
4. Otros problemas a resolver con procesamiento de
imgenes.................................................................139
Internet..................................................................141

Bandas del espectro electromagntico


Banda

Longitud de onda (m)

Frecuencia (Hz)

Energa (J)

Rayos gamma

< 10x1012m

> 30,0x1018Hz

> 20x1015 J

Rayos X

< 10x109m

> 30,0x1015Hz

> 20x1018 J

Ultravioleta extremo (EUV)

< 200x109m

> 1,5x1015Hz

> 993x1021 J

Ultravioleta cercano (NUV)

< 380x109m

> 7,89x1014Hz

> 523x1021 J

Luz Visible

< 780x109m

> 384x1012Hz

> 255x1021 J

Infrarrojo cercano (NIR)

< 2,5x106m

> 120x1012Hz

> 79x1021 J

Infrarrojo medio (FIR)

< 50x106m

> 6,00x1012Hz

> 4x1021 J

Infrarrojo lejano/submilimtrico (FIF)

< 1x103m

> 300x109Hz

> 200x1024 J

< 102m

> 3x108Hz 1

> 2x1024 J

Ultra Alta Frecuencia Radio (UHF)

<1m

> 300x106Hz

> 19,8x1026 J

Muy Alta Frecuencia Radio (VHF)

< 10 m

> 30x106Hz

> 19,8x1028 J

Onda Corta Radio (HF)

< 180 m

> 1,7x106Hz

> 11,22x1028 J

Onda Media Radio (MF)

< 650 m

> 650x103Hz

> 42,9x1029 J

Onda Larga Radio (LF)

< 10x103m

> 30x103Hz

> 19,8x1030 J

Muy Baja Frecuencia Radio (VLF)

> 10x103m

< 30 kx103Hz

< 19,8x1030 J

Microondas (SHF - EHF)

Segn la IEEE se consideran las microondas como la radiacin de frecuencias superiores a los 109Hz o
longitudes de onda menores que 3x102 m.
Procesamiento de Imgenes
Guido Ochoa Moreno
Pgina 4

CAPITULO 1
Introduccin
Procesamiento de Imgenes
El procesamiento de imgenes es un conjunto de tcnicas con el objetivo de mejorar la
apariencia visual de las imgenes para un observador humano, incluyendo su impresin,
transmisin y preparacin para la medicin de las caractersticas y estructuras que presentan
las mismas. El procesamiento de imgenes es una tecnologa prctica para:

Clasificacin
Extraccin de caractersticas
Reconocimiento de patrones
Proyeccin
Anlisis de seales multiescala.

El procesamiento de imgenes comprende actividades como editar una imagen, restaurarla,


modificarla, hacer reconocimiento o el entendimiento de la imagen, es decir, determinar su
significado, o extraer la informacin contenida en la misma.
Una imagen puede ser considerada como un arreglo bidimensional de puntos, los mismos que
poseen una determinada coloracin y en conjunto muestran lo que en ella se ve. Cada uno de
los puntos que componen la imagen se denomina pixeles y adems de su coloracin un pixel
est identificado por su posicin dentro de la imagen.
Generalmente se tiende a confundir una imagen con un grfico logrado a partir de
determinadas dimensiones y formas. La imagen se diferencia de un grfico porque este ltimo
puede ser representado por una lista de elementos que lo conforman, pudiendo ser generado
en muchos tamaos y a escala, u omitir parte del mismo sin ms que eliminar elementos de la
lista. Una imagen puede ser idntica a un grfico pero no cuenta con una lista de
componentes, sino slo con una coleccin de pixeles que permiten visualizar su contenido, en
una imagen el concepto de lnea desaparece y se convierte en un efecto visual. Modificar una
imagen para ampliarla requiere de un tratamiento de pixeles no de componentes como en el
caso de una grfica.
El presente curso de procesamiento de imgenes consiste de una primera parte donde se
muestran algunas relaciones bsicas entre pixeles, transformaciones bsicas y una breve
introduccin a octave como herramienta para implementar procesamiento de imgenes. La
segunda se refiere a mejoramiento de imgenes, filtrado y tratamiento de imgenes en color.
La tercera parte del curso trata de la reconstruccin, compresin y reconocimiento de
imgenes. Se incluye al inicio un repaso de las matemticas utilizadas, sin embargo de que el
contenido de este texto est enfocado a minimizar el uso de matemticas avanzadas, es
necesario familiarizarse con conceptos que hacen posible el entendimiento cabal de las
principales tcnicas del procesamiento de imgenes.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 5

CAPITULO 2
Repaso de Matemticas

Fourier, Jean Baptiste Joseph


(Auxerre, Francia, 1768-Pars, 1830) Ingeniero y matemtico francs.
Era hijo de un sastre, y fue educado por los benedictinos. Los puestos en el cuerpo cientfico
del ejrcito estaban reservados para familias de estatus reconocido, as que acept una ctedra
militar de matemticas. Tuvo un papel destacado durante la revolucin en su propio distrito, y
fue recompensado con una candidatura para una ctedra en la cole Polytechnique. Fourier
acompa a Napolen en su expedicin oriental de 1798, y fue nombrado gobernador del
Bajo Egipto. Aislado de Francia por la flota britnica, organiz los talleres con los que el
ejrcito francs deba contar para sus suministros de municin. Tambin aport numerosos
escritos sobre matemticas al Instituto Egipcio que Napolen fund en El Cairo. Tras las
victorias britnicas y la capitulacin de los franceses al mando del general Menou en 1801,
Fourier volvi a Francia donde fue nombrado prefecto del departamento de Isre, y empez
sus experimentos sobre la propagacin del calor. Se traslad a Pars en 1816, y en 1822
public Teora analtica del calor, basndose en parte en la ley del enfriamiento de Newton.
A partir de esta teora desarroll la denominada serie de Fourier, de notable importancia en
el posterior desarrollo del anlisis matemtico, y con interesantes aplicaciones a la resolucin
de numerosos problemas de fsica (ms tarde, Dirichlet consigui una demostracin rigurosa
de diversos teoremas que Fourier dej planteados). Dej inacabado su trabajo sobre
resolucin de ecuaciones, que se public en 1831 y que contena una demostracin de su
teorema sobre el clculo de las races de una ecuacin algebraica. (Diccionario de Biografas,
Ocano)

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 6

2.1 Funciones Pares e Impares


Las funciones pares son aquellas en las que se da la igualdad: f(x) = f (-x). Una funcin es
impar si se cumple que f(x) = -f (-x).
El ejemplo siguiente muestra una funcin par, observe que: f (Xa) = f (-Xa)

(1)

Para demostrar la paridad de una funcin (si es par o impar) es necesario hacerlo en todo el
dominio de la funcin y no solamente para determinados valores. El ejemplo ms comn de
funcin par es el cos (x) as como de una impar es el sen (x). En general una funcin impar se
vera como la graficada a continuacin donde: f (Xa) = -f (-Xa)
(2)

La funcin sen(x) cumple con sen(x) = -sen (-x) para todos los valores de x por lo tanto es
impar.
La paridad de una funcin se ve tambin como su simetra respecto del eje y, es decir, que si
se hace rotar la parte de la funcin correspondiente al eje x positivo sobre el eje y, esta
coincide perfectamente sobre la parte negativa del eje, y viceversa.
Para las funciones impares, la simetra aparece si primero la rotamos sobre el eje x la seccin
de x > 0 o la seccin x < 0.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 7

2.2 Funciones peridicas


Una funcin es peridica con un perodo T si para todo x, f(x + T) = f(x), donde T es el
menor valor constante positivo diferente de cero.
Ejemplos:

La funcin sen (x) es repetitiva cada 2 , 4 ,....etc. Su perodo es 2 por ser el valor
mnimo.
Las funciones sen(nx) o cos(nx), con n entero positivo, tienen un perodo de 2 /n
La funcin f(x) tal como se define a continuacin:

f ( x) = sen (x ), /2< x </2


0,
/2<x <3 /2 ; T =2
La demostracin de que sen(x) posee un perodo de 2 se deja como ejercicio. El mismo
razonamiento es vlido para demostrar que cos(x) posee un perodo de 2, o que la funcin
sen (2x) posee un perodo de .

Ilustracin 3. Ejemplo de una funcin peridica

1
,
T
entonces, frecuencias grandes es sinnimo de perodos pequeos. Desde el punto de vista de
energa, una funcin con ms frecuencia tiene ms energa que una de menor frecuencia.

Si una seal f(x) es peridica, con perodo T, se dice que posee una frecuencia

f=

Las funciones no continuas como la mostrada en la figura anterior se definen los tramos, as,
esta quedara definida como f(x) = cos(x) para el intervalo de -Xa a Xa (en la grfica Xa =
/2), y cero caso contrario. Para completar la definicin de f(x) se seala que se trata de una
seal peridica dando el valor del perodo T.
A continuacin se dan algunos ejemplos de funciones peridicas.
f(x) = {x, 0<x<2 , T=2
f(x) = {1, 0<x< ; -1,- <x<0, T=2
f(x) = {|sen x|
f(x) = { sen(x), 0 < x < ; 0 c.c. T = 2 .
f(x) = {|x|, 0 < x < 1; T = 2.
f(x) = {| x + 1 |, - 1 < x < 1; T = 2.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 8

Demostracin de funciones pares e impares


Demostrar si la siguiente funcin es par, impar o ninguna de las anteriores.

f ( x) = sen (x ), 0< x <


sen (x), < x <0 ; T =2
La grfica de f(x) es:

Ilustracin 4. Ejemplo de una funcin par

Las tres opciones posibles para toda f(x) son :


i)
ii)
iii)

Que la funcin sea Par: f(x)= f (-x)


Que sea Impar
f(x)= -f (-x)
O, que no sea ni par ni impar

Empezamos por calcular f(x) y f(-x)

f (x) = sen (x) , 0<x<


sen (x), <x< 0; T =2

f (x ) = sen (x ), < x <0


sen ( x), 0< x< ; T =2

f (x ) = sen ( x), 0< x<


sen (x ), < x< 0 ; T =2
Para saber si f(x) es igual o no a f(-x), debemos compararlas por tramos :
i) En el tramo: 0 < x <
f (x) = sen(x)
f (-x) = sen(x)
ii) En el tramo: < x < 0
f (x) = sen(-x)
f (-x) = sen(-x)
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 9

Por lo tanto la funcin es par f(x)= f (-x), y se concluye con la demostracin.


Si hubiese sido necesario el clculo de -f(-x), este sera:

f (x ) = sen(x ), 0< x <


sen(x ), < x <0 ; T =2

f (x ) = sen (x ) , 0< x <


sen (x) , < x< 0 ; T =2
Y a continuacin se debe verificar si f(x) es igual a f(-x) para cada uno de los tramos o
rangos de valores de 'x'. En este caso, la funcin no es impar puesto que f(x) -f (-x)
Finalmente, si f(x) f (-x) y adems f(x) -f (-x), se concluye que la funcin no es par ni
impar.

2.3 Series de Fourier


Cualquier seal o funcin peridica puede ser representada por una suma de sinusoides,
denominadas componentes sinusoidales.
Funciones peridica como estas:

Se puede expresar como la suma de sinusoides de la ilustracin 6:


En general, cualquier funcin peridica que sea integrable dentro de un perodo T, puede ser
descompuesta en una serie de senos y cosenos.

Ilustracin 6. Componentes sinusoidales

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 10

La serie de Fourier est definida como:


Serie de FOURIER:
a0
+
2

f (x)=
1
L

an =

1
bn =
L
L=

a n cos ( n L x )

+ b n sen

n=1

( n L x )

(3)

f ( x ) cos ( n L x )

dx

(4)

dx

(5)

L
L

f ( x ) sen( n L x )
L

T
2

Como ejemplo se desarrolla a continuacin la serie de Fourier de una funcin peridica


cuadrada definida por:

f ( x) = 0,
3,

5< x <0
0< x<5 ; T =10

Para obtener la serie debemos encontrar los valores de a0, an y bn, y reemplazarlos en la frmula
propuesta por Fourier de f(x).
Lo primero que debemos hacer es halla el valor de L, que es la mitad del perodo por lo tanto es igual a
5. Con el valor de L, usamos (3) para hallar an :
5

a n=

1
nx
f (x ) cos (
)dx

5 5
5

esta integral puede ser separada en los dos intervalos de f(x), de -5 a 0, y de 0 a 5, de modo
que la integral queda como:
0

a n=

1
1
n x
0 dx + 3 cos(
)dx

5 5
50
5

an =
an =

3
5

cos(
0

(6)
5

n x
3 5
n x
3 5
)dx =
sen(
) =
sen (n ) 0
5
5 n
5 0
5 n

3
sen(n ) = 0 , puesto que sen (n)=0 para valores de n enteros.
n

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 11

Hallado el valor de an = 0, debemos hallar de a0, para ello recurrimos nuevamente a (6),
porque no se puede reemplazar n = 0 en el valor de an (debido a que incurriramos en una
indeterminacin). Reemplazando n = 0 en (6) obtenemos:
5

a 0=

3
cos (0)dx = 35 dx = 3
50
0

Igualmente,
b n=

3(1 cos n )
n

b n=

3
(1 cos( n ))
n

Por lo que f(x) queda como:


b n=

3
(1 1) = 0 ; n impar
n

f ( x)=

b n=

3
6
(1+ 1) =
; n par
n
n

3
6
x 1
3 x 1
5 x
+ sen (
)+ sen (
)+ sen (
)+...
2
5
3
5
5
5

a0
3
se conoce como valor promedio de la funcin o componente
=
2
2
continua (cc) de la funcin, en este caso el valor promedio de f(x) es 3/2.
El trmino de

El que an haya resultado cero no es una coincidencia, si miramos la forma de funcin f(x),
notaremos que si se le resta el valor hallado para la componente continua, f(x) sera una
funcin impar, con partes positivas y negativas iguales descrita por:

f ( x) = 3/ 2,
3/2,

5< x <0
0< x <5 ; T =10

El valor de a0 solamente cambia el nivel de f(x), no su forma, y vemos que la forma impar de
f(x) es representada por la suma de sinusoides impares. Podemos concluir entonces que una
funcin par se descompondr en una suma de cosenos, mientras que una impar en una suma
de senos. Dicho de otra forma, la expresin en series de Fourier de funciones pares tiene
bn=0, mientras que las impares an=0. En resumen, las funciones pares tienen componentes
pares y las impares componentes impares. No hay que considerar el nivel de la funcin para
determinar su tipo de paridad .
Si graficamos las componentes de la funcin se puede observar que existe una aproximacin a
la funcin original. La grfica a continuacin no incluye la componente continua que sera
una recta horizontal trazada en y = 3/2 = 1.5.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 12

Nota:

Es recomendable primero determinar si la funcin es par o impar, puesto que una


funcin par se descompone slo en funciones pares, es decir, cosenos, y por ende
bn = 0, mientras que si es impar an = 0 y solo existirn componentes seno.

Deber: Graficar a escala en papel milimetrado las tres primeras componentes de las serie de
Fourier.

Ilustracin 8. Grfico de un periodo de las dos componentes de f(x). No incluye cc.

Si se aaden ms componentes, la funcin resultante se asemeja ms a la versin original, a


continuacin se muestra f(x) con ocho componentes incluyendo el valor continuo.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 13

2.4 Serie Compleja de Fourier


Es la misma serie de Fourier pero expresada utilizando la frmula de Euler:
e

= cos + j sen

e j = cos j sen
cos =

+ e
2

y,

sen =

e
2j

La serie compleja de Fourier queda entonces de la forma:


f ( x) =

cn e

n x
L

(8)

n=0

Donde cn es el coeficiente que reemplaza a an y bn. La sumatoria puede ahora empezar en cero
ya que la componente continua que no depende de senos ni cosenos estara expresada con c 0
puesto que e0 es igual a 1.

2.4.1 Prctica de Octave


En el anexo se presenta una prctica detallada de octave, tambin se la puede ejecutar en
MatLab. A continuacin se muestra el cdigo en lenguaje de octave para reconstruir la
funcin f(x) tal como se visualiza en la ilustracin 9.
f (x)=

3
6
x 1
3 x 1
5 x
+ sen(
)+ sen (
)+ sen (
)+...
2
5
3
5
5
5

Sentencia 1: crea en x un vector que inicia en 0, acaba en 10, con incrementos de 0.1 en 0.1.
x = [0:0.1:10]
Sentencia 2: se asigna al vector y los valores de la primera componente
y = 6/pi*sin((pi*x)/5);
Sentencia 3: visualiza la primera componente
plot(x,y);
Sentencia 4: el uso de hold permite graficar manteniendo el grfico anterior
hold;
Sentencia 5: ponemos en y la suma de las dos primeras componentes.
y = 6/pi*sin((pi*x)/5) + 2/pi*sin((3*pi*x)/5);
Sentencia 6: visualiza la suma de primera y segunda componentes
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 14

plot(x,y);
Sentencia 7: armamos en y las tres primeras componentes y el valor constante.
y = 6/pi*sin((pi*x)/5) + 2/pi*sin((3*pi*x)/5) + 6/pi*sin((5*pi*x)/5) / 5 + 1.5;
Sentencia 8: visualiza la suma de las tres componentes
plot(x,y);
Se deja como ejercicio obtener en y la suma de las 8 primeras componentes. El resultado debe ser el
mismo mostrado en la ilustracin 9, reproducida a continuacin:

2.5 La Transformada de Fourier


Si una funcin f(x) se descompone o expresa en una serie de Fourier, se observa las diferentes
componentes de seno y coseno denominadas tasdasmbin componentes de frecuencia. La
transformada de Fourier muestra la magnitud de esas componentes de frecuencia para
funciones peridicas y no peridicas.
La transformada de Fourier se define de la siguiente manera: F {f(x)} = F(u)

Donde

F( u) =

f ( x)

e2 j x u dx

(9)

Ejemplo: Hallar la transformada de Fourier de la siguiente funcin:

f (x) =

A,

0,

T
T
< x <
2
2
cc

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 15

T /2

F(u) =

f ( x)

2 j x u

F(u) =

dx

F(u) = A

F( u) =

A e2 j x u dx

T / 2

1
e2 j x u
j2u

T/2

T / 2

A
[ e j T u e j Tu ] = A
j 2u
u

e j Tue j Tu
A
=
sen( T u)
2j
u

Usando la funcin sa(x) o sinc(x):


sa (x) = sinc (x) =

F( u) = AT

sen (x )
x

( sen ( TTuu) ) = AT sinc(Tu)

(10)

Grfica de F(u):

La amplitud de la funcin Sinc(x) es el lmite de la funcin cuando x tiende a 0, lo cual es 1


puesto que sen(x) = x cuando x tiende a cero.
Los ceros de Sinc(x) son los mismos de Sen(x), y Sen(x) = 0 cuando x = n, con n 0
Lo ceros de F(u) sern:
u T = ,
u = / (T)
u=1/T

puesto que en se produce un cero de sen(x).

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 16

Consideraciones respecto de F (u).

Cuando T aumenta la curva es ms angosta, F(u) entre 1/T y 1/T.


Si T vara, las frecuencias tambin varan.
La transformada de Fourier nos muestra las frecuencias presentes en f(x).

Para un valor grande de T, la amplitud de F(u) sera mayor y tomara la apariencia de un pulso
muy angosto puesto que 1/T sera muy pequeo. En el lmite, cuando T tiende a infinito, F(u)
es la funcin delta de Dirc (x).
Cuando T aumenta, la frecuencia disminuye y cuando T disminuye la frecuencia aumenta.

2.6 La transformada de Fourier Discreta


Se aplica para funciones discretas, las mismas que son el resultado de obtener muestras de una
funcin continua a intervalos regularmente espaciados. A continuacin se muestra la funcin
discreta x[n] y su transformada de Fourier.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 17

Si N es el nmero de puntos de x[n], la funcin discreta resultado del clculo de su


transformada de Fourier, poseer tambin N puntos y estar definida por:
x [k ] =

x [n] e

k=

2 nk
N

(11)

Se puede demostrar que la envolvente de la funcin discreta X[k] es igual a la transformada


de Fourier de la envolvente de x[n].
Las funciones discretas obtenidas mediante muestreo regular de funciones continuas reciben
el nombre de secuencias. Sin embargo, una secuencia puede ser obtenida a partir de valores
arbitrarios y no de un proceso de muestreo, el nico condicionante siempre presente es que
sus valores estn igualmente espaciados.

2.7 Secuencias
La secuencia es una funcin que slo se halla definida en valores enteros de su variable
independiente n. La secuencia es una funcin real o compleja y usualmente es el resultado de
muestrear una funcin continua a intervalos regulares.
Sinnimo de secuencia es orden, si deseamos enviar un mensaje por tramos (intervalos), lo
que se enva es una secuencia. La secuencia se escribe como:
x[n] = (7, 7, 4, 5, 6, 2, 0, 5)
El orden en que aparecen los elementos de la secuencia define la misma, de modo que si se
cambia el orden se est cambiando de secuencia. Si al definir la secuencia no se especifica en
valor de n en el que esta inicia, se asume que es cero (0).

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 18

Ilustracin 12. Ejemplo de graficacin de la secuencia x[n]


La secuencia es una seal de una dimensin, cuyos valores pueden ser nmeros reales e
incluso complejos y slo existen para valores de n enteros. Por existir slo para valores de n
enteros, este tipo de funciones son llamadas funciones discretas o seales discretas.

2.7.1 Operaciones con Secuencias


Las operaciones con secuencias se las hace punto a punto y son:
Suma:
Multiplicacin:
Multiplicacin por un escalar:
Desplazamiento:

y[n] = x1[n] + x2[n]


y[n] = x1[n]. x2[n]
y[n] = a. x[n]
y[n] = x [n - no]

Ejemplo:
Sea: x[n] = (1, 0,-1, 3,2)
Hallar: y[n] = x[n] + 1.
El proceso de resolucin de y[n] se lo debe hacer para todos los valores de n, como x[n] tiene
valores diferentes de cero en el intervalo de 0 a 4, se resuelve y[n] para estos valores de n.
Obsrvese que para valores nulos de x[n] existen valores diferentes de cero de y[n].
La grfica a continuacin muestra la secuencia x[n] y la secuencia resultado y[n].

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 19

El detalle del clculo se presenta a continuacin para los valores de n entre 0 y 4.


n = 0: y [0] = x [0] + 1 = 1 + 1 = 2
n = 1: y [1] = x [1] + 1 = 0 + 1 = 1
n = 2: y [2] = x [2] + 1 = -1 + 1 = 0
n = 3: y [3] = x [3] + 1 = 3 + 1 = 4
n = 4: y [4] = x [4] + 1 = 2 + 1 = 3
Para los valores de n menores a 0 y mayores a 4, x[n] posee un valor de CERO (0), por lo que
al sumar 1, x[n] + 1 es igual a 1 en toda esta regin.
Ejemplo:
n = - 1: y [-1] = x [-1] + 1 = 0 + 1 = 1.

2.7.2 La Convolucin
Es una operacin de secuencias que resulta de la combinacin de las variaciones de dos
secuencias. Usualmente es la secuencia x[n] que se opera con otra h[n] para obtener un
resultado y[n]. En este esquema se dice que la secuencia y[n] es el resultado de x[n] al
aplicrsele el filtro h[n].

El smbolo que describe esta operacin es *. La convolucin de dos secuencias x[n] y h[n] se
define como:

y[n] x[n] * h[n]

x[k ]h[n k ]

Ejemplo: Hallar la convolucin de las secuencias x[n] = (1, 1, 2) con h[n] = (1,-1). Las dos
secuencias empiezan en n=0.
La resolucin de la sumatoria debe hacerse para valores en los que el producto h [n-k] sea
diferentes de cero, puesto que no tiene sentido sumar ceros. El rango de calculo se reduce al
de x[n], puesto que fuera de l el producto x[k] h [n-k] es siempre cero, en ese caso para
valores de k de 0 a 2, y para n de 0 a 3.
As:
n=0:
n=1:
n=2:
n=3:

y [0] = x [0] h [0] + x [1] h [-1] = 1


y [1] = x [0] h [1] + x [1] h [0] + x [2] h [-1] = 0
y [2] = x [0] h [2] + x [1] h [1] + x [2] h [0] = 1
y [3] = x [0] h [3] + x [1] h [2] + x [2] h [1] + x [3] h [0] = -2

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 20

Ilustracin 14. Convolucin de x[n] con h[n]

La convolucin es un operacin conmutativa:

2.7.3 Rango de la Convolucin


El nmero de puntos del resultado y[n] est dado por: Ny = Nx + Nh -1, donde Nx es el
nmero de puntos de la secuencia x[n], Nh el de la secuencia h[n] y Ny el de la secuencia
resultante de la convolucin de x[n]*h[n].
(13)
Observando la igualdad anterior, y suponiendo que la secuencia x[n] inicia en N1 y acaba en
N2, que h[n] inicia en M1 y acaba en M2, la secuencia resultado de la convolucin de x[n]
con h[n] debe iniciar en (N1 + M1) y acabar en (N2 + M2) si (10) se cumple.
Demostracin:

Nx = N2 - N1 + 1
Nh = M2 - M1 + 1

Aplicando (10), tenemos que: Ny = (N2 -N1 +1) + (M2 - M1 + 1) -1


Reagrupando los trminos tenemos que: Ny = (N2 + M2) - (N1 + M1) + 1
Con lo que se demuestra que el inicio de y[n] es (N1 + M1) y el fin es (N2 + M2).
En forma grfica la ecuacin (10) se muestra como:

Ilustracin 15. Inicio y fin de la secuencia convolucin de x[n] con h[n].


Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 21

La forma de convolucin y
= x *h no depende del inicio x
ni de h , la forma es
siempre la misma, por lo que puede hacer los clculos como si las dos secuencias inician en 0
y el resultado se dibuja en la posicin que corresponda, es decir, desde la suma de los inicios,
hasta la suma de los finales de las dos secuencias

2.7.4 Filtrado mediante la Convolucin


Un filtro es un dispositivo que permite eliminar parte de lo que es filtrado. En el caso de
seales, un filtro sirve para eliminar las partes cambiantes de una seal y hacerla ms
constante, o por el contrario eliminar las partes que no varan y conservar de la seal slo las
variaciones. Los dos tipos de filtros descritos se conocen como Pasa Bajos (aquellos que
eliminan las variaciones) y Pasa Altos (los que conservan slo las variaciones).
Para que un filtro no altere la naturaleza de la seal a filtrarse debe cumplir con las siguientes
condiciones:
Ser simtrico, se dice que una secuencia es simtrica si la envolvente de la secuencia pude
ser una funcin par o impar, si se desplaza la secuencia un valor m, siendo 2m un valor
entero. Los filtros pasa alto, en general describen una envolvente impar.
Ser unitario, un filtro es unitario si la suma de los valores que componen la secuencia es
UNO. Esta condicin es slo necesaria para los filtros pasa bajos, y no lo es para los pasa
altos.
Las siguientes secuencias son ejemplos de filtros:
x[n] = (1,-1)
x[n] = (0.5, 0.5)
x[n] = (-1, 1)
n[n] = 0.2 (1, 1, 1, 1, 1)

Filtro pasa altos


Filtro pasa bajos.
Filtro pasa altos.
Filtro pasa bajos.

La figura 15 muestra la secuencia x[n] filtrada con la secuencia h[n] (pasa altos) el resultado
es las variaciones de x[n], as y[n] muestra que x[n] sufre una variacin de 1 en los puntos
n=0 y n=2, otra variacin de -2 en n=3, y finalmente una de 2 en n= 3. La primera y ltima
variacin se calcula respecto del valor de 0 que tiene la secuencia antes de n=0 y despus de
n=2, o sea, de n=3 en adelante.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 22

Ejemplos de filtro pasa bajos y pasa altos

Filtrar:

Filtrar:
1)

2)

Las variaciones suman siempre 1 y el filtro pasa bajos es enemigo de cambios.

2.8 Problemas
1. Grafique las siguientes funciones y demuestre si son pares o impares.
a) f(x) = {|sen x|
b) f(x) = {sen(x), 0 < x < ; 0 c.c. T = 2.
c) f(x) = { |x|, 0 < x < 1; T = 2.
d) f(x) = { 1, sen(x) > 0; -1, sen(x) < 0
e) f(x) = {x-1, 0 < x < 1; 0 cc. T = 2.
e) f(x) = {x2- 1, -1 < x < 1; 0 cc. T = 2.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 23

2.- Grafique las funciones f(x) y demuestre si la funcin es par o impar


a) f(x) = {x, 0<x<2, T=2
b) f(x) = {x, -<x<, T=2
c) f(x) = {1, 0<x<; -1,- <x<0, T=2
d) f(x) = {| cos(x) |, - < x < ; T = 2.
e) f(x) = {sen (-x), 0 < x < ; 0 c.c. T = 2.
f) f(x) = {|x-1|, -1 < x < 1; T = 2.
g) f(x) = {| x + 1 |, - 1 < x < 1; T = 2.
3. Grafique f(x) y halle la serie de Fourier de:

f ( x) = 1, 0< x<1
0, cc
a) T=2
b) Halle la amplitud de las primeras tres componentes de la serie de Fourier:
y = 6/* {sen ( x/5) + 1/3 sen (3 x/5) + 1/5 sen (5 x/5) + }
c) En la serie anterior, calcule las tres frecuencias ms bajas, adems determine las
frecuencias que se conservaran si se eliminan las frecuencias superiores a 1 Hz.
4. Halle de la serie de Fourier de la funcin peridica f(x), T=4. Figura 1

Respuesta: a n=

2
n
sen(
) , a 0=0
n
2

b n=

1
(1cos (n ))
n

5. Hallar la transformada de Fourier de la figura (2):


6. Grafique f(x), y halle y grafique la transformada de Fourier de:
f(x) = { , - x , 0 cc.
7. Sean x[n] = (1, 1, 1, 1, 2,3), h[n] = (1, 2,-2), y empiezan ambas en -2, hallar:
1. y[n] = x[n] -h[n]
2. y[n/2] = x[n]
3. y[n-1] = x[-n] + h[n+1]
4. y[n] = x[n] / h[n-1]
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 24

8.
a)
b)
c)

Halle la convolucin de x[n] con h[n], x[n] empieza en -2 y h[n] en 10.


x[n] = (1,1,2,2,3,3), h[n] = (1,0,-1)
x[n] = (1,1,2,2,3,3), h[n] = (, , )
x[n] = (1,0,1,0,-1), h[n] = (1,-1,1).

9. Hallar la convolucin de x[n] = (1, 0, 2, 3, 4, 5), empieza en 1, con h[n] = (-1, 0, 1) empieza
en -2.
10.

Cuantos puntos posee la convolucin de x[n] = (1,0,2,3,4,5), empieza en 1, con h[n] =


(-1,0,1,0,0,0,0,1) que empieza en -2.

11. Haga el seudocdigo de un programa que calcule la convolucin de dos secuencias, al


cual se ingresa los puntos de inicio de las secuencias, y las secuencias.
12.

Haga el seudocdigo para calcular la convolucin de una secuencia con el filtro pasa
altos h[n] = (1, -1).

13.

Haga el seudocdigo para calcular la convolucin de una secuencia con el filtro pasa
bajos h[n] dado el nmero de puntos de h[n].

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 25

CAPITULO 3
Introduccin a Imgenes
Newton, sir Isaac
(Woolsthorpe, Gran Bretaa, 1642-Londres, 1727) Fsico y matemtico ingls.
Fue hijo pstumo de un pequeo terrateniente fallecido
tres meses antes de su nacimiento, el cual se produjo de
forma prematura. Cuando acababa de cumplir los tres
aos, su madre contrajo segundas nupcias y lo dej al
cuidado de su abuela materna, lo cual le ocasion un
trauma emocional en el que ha querido verse, junto a su
condicin de prematuro, el origen del temperamento
neurtico e hipocondraco que caracteriz al Newton
maduro. Recibi su educacin primaria en la King's
School de Grantham y, tras mostrar su incapacidad para
ocuparse de la hacienda familiar, en 1661 fue enviado a
la Universidad de Cambridge. Eligi estudiar fsica y
matemticas, pero no parece que fuera un alumno
especialmente destacado. La peste lo oblig a abandonar
Cambridge en el verano de 1665, por lo que tuvo que
iniciar un perodo de descanso forzoso en el que sent las
bases de sus principales aportaciones cientficas, pues
fue entonces cuando concibi la idea de gravitacin universal tras preguntarse, al parecer, por
qu razn una manzana caa siempre perpendicularmente hacia el centro de la Tierra en lugar
de seguir otras trayectorias. Tambin redact un esbozo del futuro clculo de fluxiones y
acometi el estudio experimental de la descomposicin de la luz blanca mediante un prisma
de refraccin. De regreso en Cambridge, en 1667 fue elegido miembro del Trinity College y
dos aos despus sucedi a su maestro Isaac Barrow en la ctedra de matemticas. Sus
descubrimientos de ptica, que expuso en sus clases, le valieron ser elegido miembro de la
Royal Society en 1672, hecho que seal el inicio de su notoriedad, pero tambin el de una
serie de controversias acerca de la prioridad en dichos descubrimientos, en particular con
Robert Hooke; ello determin que demorara hasta 1704, tras la muerte de Hooke, la
publicacin de su tratado de ptica. En 1676 renunci a proseguir la polmica, y durante unos
aos se sumi en sus trabajos sobre el clculo diferencial y en su inters por la alquimia y los
estudios bblicos.
La correspondencia mantenida con Hooke a partir de 1679 parece que aviv su inters por la
dinmica, campo en el que se concentr en la demostracin terica de las leyes de los
movimientos planetarios enunciadas por Kepler. Cuando Edmond Halley lo visit en 1684,
comprob que Newton haba resuelto ya el problema y lo anim a hacer pblicos sus
resultados. La intervencin de Halley result decisiva en la publicacin de los Principia, la
obra cientfica ms influyente y significativa de su poca, que contiene la formulacin
matemtica de la ley de la gravitacin universal, interpretada como principio unificador del
movimiento; Halley se ocup de que el manuscrito fuese presentado ante la Royal Society,
que se encarg de la edicin, costeando l personalmente la impresin, terminada en julio de
1687. La obra contiene la demostracin del hecho experimental segn el cual una esfera
gravitatoria homognea ejerce una atraccin sobre los puntos exteriores a ella y se comporta
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 26

como si toda su masa se encontrara situada en su centro; y la ley de la atraccin gravitatoria,


que aparece comprobada para el movimiento de la Luna. Incluye tambin la primera
publicacin impresa del clculo infinitesimal creado por Newton, reconociendo, en su primera
edicin, que Leibniz estaba en posesin de un mtodo anlogo; pese a ello, los partidarios de
uno y otro se enzarz en una nueva disputa de prioridades, que el propio cientfico alent
entre bastidores. En 1687 form parte de la comisin formada por la Universidad de
Cambridge en oposicin a las medidas de catolizacin del rey Jacobo II. Tras la Revolucin
de 1688, fue elegido representante de la universidad ante el Parlamento. En 1696 acept el
nombramiento de director de la Casa de la Moneda, que pas a presidir tres aos despus. En
1701 renunci a su condicin de profesor universitario y en 1703 fue elegido presidente de la
Royal Society, cargo que desempe hasta su fallecimiento. (Diccionario de Biografas,
Ocano).

3.1 Elementos de percepcin visual


El siguiente es un esquema de lo que sucede cuando observamos un rbol de 15 metros de
altura desde una distancia de 100 metros. El tamao de la imagen que se forma en nuestra
retina es de apenas 2.55 mm, y pese a ello podemos observar todos los detalles del rbol.

Ilustracin 1. Proceso de visualizacin.

El ojo humano es capaz de diferenciar hasta 1010 niveles de luz, sin embargo, podemos
distinguir solamente 150 tonalidades de un mismo color, es decir, que somos capaces de ver
cerca de 66 millones de colores con sus respectivas tonalidades.

3.2 Modelo simple de una imagen


Como sabemos una imagen es una coleccin de puntos en dos dimensiones de modo que
representen algo visible. Podemos definir una imagen como una matriz de puntos, cada uno
de ellos de un determinado color y en una posicin especfica. Dicho de otra manera una
imagen es una matriz de puntos denominados pixeles, de modo que la imagen es una matriz
de pixeles. Para efectos del procesamiento de imgenes siempre nos referiremos a imgenes
rectangulares de modo que la definicin de imagen como matriz ser siempre vlida.
La forma de representar una imagen es: f(x,y), la misma que muestra la amplitud f en las
coordenadas x y y. La magnitud de f(x,y) se halla limitada a valores vlidos de los pixeles, por
ejemplo para una imagen que posee 4 tonalidades o niveles de gris los valores permitidos de
f(x,y) son el 0, 1, 2 y el 3. En general, se tiene que:
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 27

0 f(x,y) < (Niveles de gris -1 )

(1)

Los factores que determinan los niveles de gris o el color de los pixeles son la Iluminacin
i(x,y) y la Reflectancia r(x,y), definidos como la cantidad de luz aplicada sobre el punto y la
capacidad de este de reflejar o absorber la luz recibida. A mayor reflectancia mayor es la luz
reflejada o lo que es lo mismo, menor es la luz absorbida.
Entonces una imagen ser: f(x,y) = i(x,y) r(x,y), o sea pixel por pixel, el resultado de la
iluminacin y la reflactancia .
Los valores permitidos para i y r son:
0 <= i(x,y) <
0 <= r(x,y) <= 1

(1 significa reflexin total)

(2)

Los valores posibles de niveles de gris de una imagen estarn entre Lmin y Lmax, se puede
graficar un rango de grises tal como se muestra a continuacin:

Ilustracin 2. Grfica del color en funcin de la energa aplicada (iluminacin), en niveles de gris.

Mnimo de iluminacin producir un nivel de gris de: 0 , significa el color negro.


Mximo de iluminacin sobe una superficie clara producir un: Lmax, significa el color
blanco.
La matriz imagen indica el valor de cada pixel en la posicin correspondiente, en forma
general una imagen de N puntos de largo por M puntos de ancho se representar como:

f(x,y) =

f(0,0)
f(1,0)
.
.
f(M-1,0)

f(0,1) ....
f(1,1) ....
.
.
.
f(M-1,1).....

f(0,N-1)
f(1,N-1)
.
.
f(M-1,N-1)

(3)

El valor f (0,0) indica el tono de gris del pixel o pel ubicado en la posicin 0 en el eje x y 0
en el eje y.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 28

Para graficar una imagen se usa un plano cartesiano x - y similar al utilizado en funciones
matemticas pero con el eje y con el sentido de crecimiento hacia abajo, tal como se muestra a
continuacin.

Ilustracin 3. Ejes de Graficacin de una imagen. EL eje Y crece hacia abajo

3.3 Digitalizacin de imgenes (Muestreo y Cuantizacin)

Para obtener una imagen desde una fuente real como por ejemplo una fotografa, se debe
realizar un proceso de digitalizacin:
El proceso de digitalizacin consiste en reemplazar una imagen real compuesta por un nmero
infinito de puntos, por una imagen cuyo nmero de pixeles es finito. El nmero de pixeles que
contiene una imagen define su tamao, y la forma de expresar estos pixeles darn mayor o
menor realismo a la imagen. La frmula (4) muestra una imagen cuyos valores de f(x, y)
deben poseer un dominio definido por la expresin f(x,y)= i(x,y) r(x,y). En general los valores
de f(x, y) son enteros de modo que:
f(x, y) Z+

(4)

Supongamos que se digitaliza una imagen mediante un scanner cuya resolucin es de 150 ppi.
Esta resolucin del scanner quiere decir que cada 1/150 de pulgada debe realizar lecturas de la
imagen y reemplazar estas lecturas por valores vlidos de pixeles en las posiciones
correspondientes. Cada valor de luz leda por el scanner debe ser reemplazado por un valor
vlido de pixel en una regin correspondiente a un cuadrado de 1/150 de pulgada de lado.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 29

I n t e r v a lo d e m u e s tr e o

Ilustracin 4. Digitalizacin de una imagen

Lo sealado con lneas verticales se denomina intervalo de muestreo y para cada uno de ellos
de debe encontrar el valor que mejor representa a la imagen para definir el valor del pixel.
Si la imagen digitalizada debe ser binaria (dos niveles de gris) entonces se debe decidir si el
nivel de luz detectada es un blanco o un negro en cada intervalo de muestreo, y reemplazar
este valor por un 0 (negro) o un 1 (blanco).
Si existen ms niveles de gris, se hace una escala de grises desde 0 hasta el valor mximo de
luz detectada o referencial (L-1), y se determina el valor correspondiente a cada intervalo de
muestreo. El proceso de asociar un valor a cada muestra (dentro del intervalo de muestreo) se
denomina cuantizacin.
La cuantizacin siempre incurrir en un redondeo lo que se denomina error de cuantizacin y
se debe a que el valor a ser cuantizado no tiene un valor exacto durante todo el intervalo y que
adems este valor no es siempre un entero. El error debido al redondeo y promedio de la seal
en el intervalo de muestra tiende a minorar si es menor el salto de cuantizacin (intervalo de
entre los valores permisibles de los pixeles), as, este error es mayor si se trata de cuatro
niveles de gris (ya que el intervalo de valores entre el blanco y negro debe repartirse entre
cuatro regiones), que si se tratase de 256 niveles ya que la distancia entre niveles consecutivos
es menor.
La desventaja de realizar una digitalizacin en ms niveles de gris es el espacio necesario para
el almacenamiento de la imagen. Para imgenes binarias, se necesita de apenas un bit por cada
pixel, por ello a este tipo de imgenes se les denomina de 1 bit, similarmente las imgenes de
8 bits son aquellas de 256 niveles de gris.
Si se desea almacenar una imagen de N x M pixeles y cada pixel necesita de m bits para ser
almacenado, el tamao total necesario es de:
Tamao de la imagen = b = N M m bits

(5)

Como el nmero de bits para almacenar L niveles de gris es m = log2 (L), la misma frmula
anterior puede ser expresada en niveles de gris.
b = N M log2 (L)

(6)

Por ejemplo, una imagen de 128 x 128 pixeles con 64 niveles de gris requiere de 98304 bits
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 30

para su almacenamiento.
Otra clase de error que se incurre en el proceso de digitalizacin es el error de muestreo, y
consiste en el error que se comete al asignar un valor representativo en todo el intervalo de la
muestra, y aumenta si existen intervalos de muestra ms grandes. En resumen, el error de
muestreo es inversamente proporcional al nmero de puntos por unidad de superficie
(resolucin) que tenga la imagen.
Actualmente es muy popular la digitalizacin de imgenes en color. Para esto se usa el
scanner en color, el mismo que usa tres filtros: verde, rojo y azul, para digitalizar la imagen
como si se tratase de imgenes monocromticas (en tonos de gris). Puesto que un color se
puede representar en tres colores primarios que son rojos, verdes y azules, al obtener 256
niveles en cada color primario se logra escanear una imagen en 16 millones de colores.
Al utilizar filtros se obtienen niveles de rojo (filtro rojo), de verde, de azul dependiendo del
filtro que se aplique.

3.3.1 Resolucin de una imagen


El nmero de pixeles por unidad de rea es lo que se conoce como resolucin de una imagen.
Otro concepto relacionado con resolucin es el nmero de niveles de gris que puede tener un
pixel. Sin embargo, para evitar confusiones es necesario aclarar si resolucin significar ppi
(puntos por pulgada) o niveles de gris (o colores). En general se hablar de resolucin como el
nmero de niveles de gris de un pixel.

3.3.2 Cuantizacin no uniforme


Este tipo de cuantizacin se usa para poner mayor nfasis en una determinada regin del
espectro de grises.
La cuantizacin no uniforme hace que una regin del espectro a digitalizarse de la imagen
posea mayor resolucin que otras, esto equivale a estirar el espectro en determinados niveles y
comprimirlos en otros.

3.4. Relaciones bsicas entre pixeles


3.4.1 Vecindad de un pxel
Si se analiza un pixel p tal como se muestra en la figura, los pixeles marcados con x son los
vecinos ms prximos. Si el pixel p posee las coordenadas x,y, entonces las coordenadas de
los cuatro pixeles vecinos sern: (x+1, y), (x-1, y), (x, y+1), (x, y-1).
D
x
D

x
p
x

D
x
D

Hay tres tipos de vecindad, los pixeles marcados con x son la vecindad N4, los marcados
con D son la vecindad ND cuyas coordenadas son: (x+1, y+1), (x+1, y-1), (x-1, y+1), (x-1,
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 31

y-1), y la vecindad N8 formada por todos los pixeles de N4 y ND.

3.4.2 Conectividad
Determina la zona o regin en la que pixeles del mismo tipo son vecinos. Conectividad y
vecindad prcticamente son conceptos equivalentes, as, hablar de N4, ND y N8 es vlido
tanto en conectividad como en vecindad.
Si un pixel q est conectado con el pixel p entonces q es parte de la vecindad de p sea
esta N4, ND o N8.
Hay un tratamiento diferente para imgenes binarias y no binarias.
Otra forma de ver la conectividad es el camino o isla, esta se aplica en imgenes binarias y
contiene a todos los 1 vecinos. En la imagen de la ilustracin 20 existen 3 caminos o tres
islas de 1. En imgenes binarias es posible tener islas compuestas por un slo pixel 1.
1
0
0
0
1

0
1
0
0
0

0
1
1
1
0

0
1
1
1
0

0
0
0
1
0

0
1
0
1
0

0
1
0
1
0

1
1
0
0
1

0
1
1
0
0

0
1
1
1
0

0
1
1
1
0

0
1
1
1
0

0
0
1
1
1

0
0
0
0
0

Ilustracin 5. Islas en imgenes binarias

Para imgenes que no son binarias, los caminos o islas se asocian a pixeles del mismo nivel
de gris, pero se forman con un mnimo de dos pixeles.

1
3
7
3

2
1
4
5

3
1
1
7

4
1
1
6

5
2
0
2

4
7
5
3

3
7
0
0

7
7
1
2

Ilustracin 6. Islas en imgenes con varios niveles de gris.

3.4.3 Medida de distancia


La distancia entre dos pixeles p y q de coordenadas p(x,y) y q(s,t) puede ser medida de
diferentes formas, una de ellas es la Euclidiana definida como d = [(x-s)2 + (y-t)2]1/2 que es
al distancia entre dos puntos segn la geometra analtica.
Propiedades de la distancia: sean los pixeles p(x,y), q(s,t) y z(u,v) entonces:

La distancia entre los puntos p y q es siempre mayor o igual a cero, ser cero si los
puntos p y q son el mismo punto.
La distancia de p a q es la misma que de q a p: d(p, q) = d(p, q), y
La distancia de p a z respecto de las distancias a los otros puntos p y q, cumple con:

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 32

d (p, z) d(p, q) + d(p, z)

(desigualdad triangular)

(7)

Otra forma de expresar la distancia es usando un enfoque de vecindad. La distancia calificada


como D4 se define como:
D4 (p, q) = |x - s| + |y - t|

(8)

De a cuero a D4 los cuatro vecinos de p(x,y) tienen distancia D4 = 1, es decir, N4 = (D4 =


1).
Otro modo de medir distancias es la distancia D8 (distancia tablero de ajedrez), definida como
el nmero de pasos que le separan a un rey desde un pxel a otro, asumiendo que la imagen es
un tablero de ajedrez. Esto es:
D8 (p, q) = max (|x-s|, |y-t|).

(9)

La ilustracin a continuacin muestra las distancias D4 y D8 del pixel central, la distancia con
sigo mismo es 0.
D4:

4
3
2
3
4

3
2
1
2
3

2
1
0
1
2

3
2
1
2
3

4
3
2
3
4

D8:

2
2
2
2
2

2
1
1
1
2

2
1
0
1
2

2
1
1
1
2

2
2
2
2
2

Ilustracin 7. Distancias D4 y D8

3.4.4 Operaciones Aritmticas y Lgicas


Las operaciones con imgenes se realizan considerando en forma independiente cada pixel.
Estas operaciones se realizan punto a punto y puesto que los valores de los pixeles poseen un
intervalo fijo, se debe de ajustar el resultado si la operacin arroja valores fuera del rango
permitido de niveles de gris. Este problema se conoce como saturacin.
En general el resultado de la operacin de dos imgenes debe ser una imagen del mismo tipo.
As, la imagen resultante de operar dos imgenes binarias debe ser tambin binaria. No es
posible operar imgenes de diferentes tipos, por ejemplo una imagen binaria con una de 256
niveles de gris. Otra condicin necesaria para operar imgenes es el que los operandos deben
ser del mismo tamao, debindose ajustar el tamao de la imagen ms pequea a la ms
grande completando con ceros las posiciones aadidas para cumplir con el requerimiento de
igualdad de tamao. Este proceso se conoce con el nombre de padding.
Para completar una imagen con ceros se debe aadir ceros en la zona marcada.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 33

3.4.4.1 Operaciones Aritmticas


Para las imgenes f(x, y) y g(x, y) del mismo tipo y tamao las operaciones bsicas se definen
como:
Suma:
Resta:
Multiplicacin:
Divisin:

f(x, y) + g(x, y) {suma punto a punto}


f(x, y) - g(x, y) {resta punto a punto}
f(x, y) * g(x, y) {producto punto a punto}
f(x, y) / g(x, y) {divisin punto a punto}

Durante del desarrollo de las operaciones aritmticas, se pueden producir resultados que se
hallan fuera del rango permitido de niveles de gris. Por ejemplo, al sumar dos imgenes de 3
bits, cuyos pixeles posean un nivel de gris de 4 y 5, el resultado sera 9, pero este no es un
nivel permitido en 3 bits (el mximo posible es 7), por lo que el resultado de la suma de 4 y 5
es 7 por ser el mximo valor permitido de la escala de grises de este tipo de imgenes. As
mismo, si se obtuviesen resultados inferiores a CERO, el resultado debe ser CERO por ser
este el menor valor permitido. Este fenmeno se denomina Saturacin y puede producirse
como se ha ejemplificado tanto hacia arriba (valores mayores al mximo permitido) como
hacia abajo (valores negativos).
Para el caso especial de una divisin para CERO, se acuerda en imgenes que el resultado
particular de CERO dividido para CERO es CERO para eliminar la indeterminacin de valor,
en cualquier otro caso, el resultado es el valor mximo permitido de nivel de gris.
El uso ms comn de estas operaciones es:
Suma: reducir ruido (modificar la media).
Resta: se usa en medicina para remover el fondo de la imagen.
Multiplicacin y divisin: corregir los niveles de gris, pueden ser operaciones hechas
In Place, es decir, usa el mismo espacio de memoria.
Multiplicacin por un escalar: consiste en multiplicar una imagen por una constante
cercana a 1.0 que permite elevar o disminuir ligeramente los niveles de gris de la
imagen.

3.4.4.2 Operaciones Lgicas


Este tipo de operaciones se aplica slo a imgenes binarias, sin embargo, se puede hacer una
representacin binaria de los niveles de gris y realizar las operaciones lgicas entre imgenes
no binarias, pero este proceso no es usual.
Las operaciones lgicas son:
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 34

AND:
OR:
Complemento:
XOR:

f(x, y) AND g(x, y)


f(x,y) OR g(x,y)
NOT f(x,y)
f(x,y) XOR g(x,y)

f(x, y) . g (x,y)
f(x,y) + g(x,y)
f(x,y)

Su uso ms frecuente es:


- Enmascaramiento ( masking) AND
- Deteccin de partes o componentes XOR.
- Anlisis de formas XOR.
- Clculo del negativo de la imagen XOR, NOT.
- Reconocimiento de imgenes AND, XOR.

3.4.4.3 Reconocimiento simple con AND y XOR


Para imgenes del mismo tamao, se puede hacer reconocimiento de patrones al hacer un
AND entre el patrn conocido y la imagen a reconocer, el resultado es comparado con el
patrn y el nmero de pixeles coincidentes nos da una medida de certeza. Ejemplo.
P: 0
0
0
0
0

0
1
0
0
0

1
1
1
1
1

0 f(x,y): 0
0
0
0
0
0
0
0
0

0
1
0
0
0

0
1
1
1
1

0 AND: 0
0
0
0
0
0
0
0
0

0
1
0
0
0

0
1
1
1
1

0
0
0
0
0

C: 1
1
1
1
1

1
1
1
1
1

0 1
1 1
1 1
1 1
1 1

Ilustracin 8. Patrn: Imagen P, f(x, y): imagen a reconocer, C: coincidencias con el patrn: 1 coincide, 0 no
coincide.

Cabe recalcar que el AND no sirve para reconocimientos de imgenes; si se usa XOR en lugar
de AND, se tiene:
P: 0
0
0
0
0

0
1
0
0
0

1
1
1
1
1

0 f(x,y): 0
0
0
0
0
0
0
0
0

0
1
0
0
0

0
1
1
1
1

0 XOR: 0
0
0
0
0
0
0
0
0

0
0
0
0
0

1
0
0
0
0

0
0
0
0
0

C: 1
1
1
1
1

1
1
1
1
1

0 1
1 1
1 1
1 1
1 1

Ilustracin 9. Patrn: Imagen P, f(x, y): imagen a reconocer, C: coincidencias con el patrn: 1 coincide, 0 no
coincide.

Si g(x,y) es el negativo de f(x,y), es decir, CEROs en lugar de UNOS y viceversa, entonces:


P: 0
0
0
0
0

0
1
0
0
0

1
1
1
1
1

0 g(x,y) 1
0
1
0
1
0
1
0
1

1
0
1
1
1

1
0
0
0
0

1 XOR: 1
1
1
1
1
1
1
1
1

1
1
1
1
1

0
1
1
1
1

1
1
1
1
1

C: 1
1
1
1
1

1
1
1
1
1

0 1
1 1
1 1
1 1
1 1

Ilustracin 10. Patrn: Imagen P, g(x,y): imagen a reconocer, C: coincidencias con el patrn: 1 coincide, 0 no
coincide.

En los dos casos, para XOR se observa que la matriz de coincidencias es simplemente el
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 35

mismo resultado del XOR, o su negativo. De manera que el uso del XOR no solo que permite
hacer el reconocimiento an cuando se trate del negativo del patrn sino que adems hace
mucho ms simple el determinar el grado de similitud existente entre el patrn y la imagen a
reconocer. El grado de similitud es la razn entre el nmero de pixeles coincidentes para el
nmero total de pixeles de patrn, en todos los casos analizados esta razn es 19/20.
En general si se usa XOR, el grado de exactitud es la divisin del mayor nmero de ceros o de
unos para el nmero total de puntos de la imagen. Lo cual mide la semejanza de f(x, y) al
positivo o negativo del patrn.
Existen otras operaciones que son un poco ms complejas, por ejemplo: Se desea emplazar un
pixel por el valor medio de la regin de pixeles vecina de dimensin 3 x 3.
Z5 = 1/9 (Z1+Z2+Z3+Z4+Z5+Z6+Z7+Z8+Z9)= 1/9 Zi

Z1
Z4
Z7

Z2
Z5
Z8

Z3
Z6
Z9

A modo de coeficientes:
Z5 = W1Z1 + W2Z2 + .. + W9Z9 = WiZi = Z'

W1 W2 W3
W4 W5 W6
W7 W8 W9

La resultante Z = W1Z1+W2Z2+...+W9Z9 = WiZi, reemplaza al valor del pixel de Z5. Si


Wi = 1/9, i = 1, 2,3,....9, la imagen resultado obtenida una vez que se hayan procesado todos
sus pixeles poseer variaciones de pixel a pixel menores a las de su original.
Si se aplica este modo de enmascaramiento de 3x3 a una imagen de 512 x 512, se requerirn
de 8 sumas y de 9 multiplicaciones por cada pixel, dando un total de 2, 357,292
multiplicaciones y 2, 097,152 sumas.
Este proceso se conoce como filtrado de imgenes y ser visto en detalle en el captulo 4 en
mejoramiento de imgenes. Existen otras operaciones que se pueden aplicar a las imgenes,
estas son: el escalamiento, la rotacin, el desplazamiento y el reflejo, que se vern a
continuacin.

3.5 Geometra de imgenes

Ilustracin 11. Operaciones con imgenes: Transformaciones bsicas

Las operaciones bsicas de transformacin de una imagen son: traslacin o desplazamiento


(cambiar de posicin una imagen); rotacin, escalamiento y reflejo.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 36

3.5.1 Traslacin o Desplazamiento


Se define como el desplazamiento de una imagen, este puede ser tanto en el eje horizontal
como en el vertical.
Sea x' la nueva posicin del pixel da la imagen desplazada X0 pixeles desde el origen,
entonces x = x + X0, de manera similar, y = y + Y0.

[ ][

x' = 1 0
y'
0 1

][ ]

X0 x
Y0 y

[ ][

][ ]

1 0
x'
y' = 0 1
1
0 0

o mejor expresado:

X0 x
Y0 y
1 1

(10)

si v es el vector [x y 1]T, entonces v es el formado por [x y 1]T, luego se puede escribir:

v ' = T v , donde T es la matriz de transformacin:

[ ]
1 0
0 1
0 0

X0
Y0
1

Ejemplo:
x ' = x + X0
con valores de X0 = 3 y Y0 = 1, tenemos:
y ' = y +Y 0
0

x ' = x +3
y ' = y +1
3

(11)
6

Para el pixel de la posicin (x=0, y=0), tenemos la nueva posicin: (x' = 3, y' = 1), al aplicar
las frmulas de transformacin (11)
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 37

3.5.2 Escalamiento

Ilustracin 12. Escala de imgenes

Al escalar una imagen se cambia de tamao a la misma, esto significa que si la imagen
original posee dimensiones de N x M puntos, la imagen resultado tendr dimensiones de SxN
x SyM, donde Sx y Sy son los factores de escalamiento. La transformacin de escalamiento
expresada como: v = Tv, con Sx como el factor de escala en el eje x y Sy el del eje y, es:
(12)
Ejemplo: Sx = 2, Sy = 2
0

1
2
3

x = 2x
y = 2y
Si x = 0
Si x = 1

x = 0
x = 2

Si y = 0
Si y = 1

y = 0
y = 2

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 38

3.5.3 Rotacin
Rotar una imagen significa hacer girar la imagen sobre su punto de origen (pixel 0,0) un
ngulo . Debido a que el origen de la imagen est en su esquina superior izquierda (ver
ilustracin 18), y que el eje y crece hacia abajo, se complican los clculos para determinar la
matriz de transformacin, por ello, se usa una nueva representacin en la que el eje y crece
hacia arriba (ilustracin 28), que permite el clculo de esta matriz. Note que el ngulo girado
es -, y que el origen es el usado en un sistema de coordenadas cartesianas.

Ilustracin 13. Disposicin de la imagen para facilitar la demostracin de la matriz de rotacin.

La matriz de transformacin es:

(13)

Ejemplo: 1.- Demostracin de la matriz de rotacin


En el eje normal de coordenadas el ngulo se vuelve -.
El ngulo es negativo porque el eje y cambia de sentido, es decir:

Sen en los ejes


se hace sen en los ejes
ngulo negativo puesto que:
Procesamiento de Imgenes

Guido Ochoa Moreno

, lo que equivale a usar un


Pgina 39

sen () = sen ()
Se debe llegar a la matriz de transformacin mostrada a continuacin.

cos sen 0
T = sen cos 0
0
0
1

Para la demostracin fijamos un punto (x, y) en la imagen original y el punto correspondiente


en la imagen que ha sufrido la rotacin de un ngulo - (x', y'). El proceso consiste en
expresar las coordenadas x y y en coordenas polares y establecer la relacin entre los valores
de x' y de y' con los valores originales x y y.

x = cos ()

y = sen()

x ' = cos()

y ' = sen ()

x ' = cos () cos() + sen () sen( ) = x cos( ) + y sen( )

y ' = sen() cos () cos( ) sen( ) = y cos ( ) x sen( )


Expresando en forma matricial se llega a lo que se quera demostrar, note que el -angulo que
gira la imagen es y no como aparece en la matriz anterior.

cos sen 0
T = sen cos 0
0
0
1

Ejemplo 2: Demuestre la matriz de reflejo horizontal.


Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 40

El reflejo horizontal (usando un espejo vertical) se ilustra a continuacin, en la ilustracin


aparece el punto (x, y) que se transforma en (x', y') y la relacin entre los valores de x' y de y'
con los valores originales x y y. El nmero de punto de ancho de la imagen es N y el alto es
M.

Los valores de x van desde 0 hasta N-1, de modo que el primer pixel (x = 0) se transforma en
N-1, as:
x ' = N1 x

y' = y

1 0
T= 0 1
0 0

N1
0
1

Para el reflejo con espejo vertical, producido con un espejo horizontal, el alumno debe hallar
la matriz de transformacin.

3.6 Funciones sobre imgenes


Las funciones ms utilizadas sobre imgenes son: cardinalidad, suma de pixeles, media,
desviacin estndar, igual, entre, truncado, umbral, restriccin, y producto interno o escalar.
Existen adems otras funciones un poco ms complicadas que se utilizan para reconocimiento
de imgenes, como la autocorrelacin.
A continuacin se dan las definiciones de estas funciones usando una nueva nomenclatura en
al que la imagen f(x, y) se representa como f(n1, n2), con dimensiones de N1 puntos sobre el eje
horizontal (n1) y N2 puntos en el eje vertical (n2).
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 41

1. Cardinalidad

(14)

card (f )=N 1 N 2

Ejemplo: f(n1 , n2) = 7 1 4 card (f)= 3*3 = 9


6 5
0 2

3
1
N 11 N 21

sumpix ( f )= f (n1, n2) =

2. Suma de Pixeles

n1, n2

f (n1, n2 )
n1

(15)

n2

Ejemplo: f(n1 , n2)= 7 1 4 Sumpix (f) = 7+1+4+6+5+3+0+2+1=29


6 5
0 2

3. Media
Ejemplo:

3
1

media = ( f ) =

sumpix (f )
card(f )

(16)

f(x, y) = 7 1 4 (f)= 29/9


6 5
0 2

3
1

4. Desviacin Estndar

2( f )

1
( f (n1 , n2 ) ( f )) 2

N 1 n1 n2

(17)

Ejemplo:
f (x, y)=

7 1
6 5
0 2

4
3
1

[[

] [

] ]
2

1
29
29
7
+ 1
+. . .
9
9
9

Existe un mtodo aproximado de obtener (f) que es 2/3 (promedio de la dispersin mxima).
As aplicando este mtodo podemos llegar a que
(f) = 2/3 {(|6 29/9| + |0 29/9| ) / 2} = 2.0, este valor es aproximado, el valor real es:
2.4381
5. Igual

1, f ( n1 , n 2 ) g (n1 , n2 )
igual ( f , g )
0, caso contrario.

Procesamiento de Imgenes

Guido Ochoa Moreno

(18)
Pgina 42

Ejemplo:
f (x, y)= 7 1 4
6 5
0 2

g=

3
1

4 6
7 3
0 1

1 Igual (f, g) =
2
2

0 0
0 0
1 0

0
0
0

6. Entre

1, s f (n1 , n 2 ) t
entre ( f , s, t )
0, caso contrario.
Ejemplo:
f (x, y)= 7 1 4
6 5
0 2

g=

3
1

(19)

1 Entre (g, 1.3, 5)


2
2

4 6
7 3
0 1

1 0
0 1
0 0

0 =
1
1

7. Truncado

f (n1 , n2 ), f (n1 , n2 ) t
trunc( f , t )
0, caso contrario
Ejemplo:
f (x, y)= 7 1 4 Trunc (f, 3)=
6 5
0 2

3
1

7 0
6 5
0 0

(20)

4
3
0

8. Umbral

1, f (n1 , n2 ) t
umbral ( f , t )
0, caso contrario.

(21)

Ejemplo:
f(x,y)=

7 1
6 5
0 2

4 Umbral (f, 3)=


3
1

1 0
1 1
0 0

1
1
0

9. Restriccin

f (n1 , n 2 ), g ( n1 , n2 ) 1
rest ( f , g )
0, g (n1 , n 2 ) 0, g es binaria

(22)

Ejemplo:
F (x, y)= 7 1 4
6 5
0 2

Rest (f, umbral(f, 3)) = 7 0 4


6 5
0 0

3
1

Procesamiento de Imgenes

Guido Ochoa Moreno

3
0
Pgina 43

Rest (f, umbral (f, t)) = trunc (f, t)


10. Producto interno o producto escalar:

f (n , n

f , g

) g (n1 , n 2 )

n1 , n2

(23)

11. Funcin de autocorrelacin:

R f , g ( , )

f (n

n1 , n2 R

, n 2 ) g ( n1 , n 2 )
(24)

3.6.1 Uso de las funciones de imgenes para hacer reconocimiento.


Mediante el uso de las funciones de imgenes se puede intentar reconocer patrones. En una
forma similar a la utilizacin de XOR.
P: 0
0
0
0
0

0
1
0
0
0

1
1
1
1
1

0
0
0
0
0

f(x,y) 1
1
1
0
0

1
4
1
1
1

5
6
5
5
7

0
1
1
1
2

f1: 1
1
1
1
1

1
0
1
1
1

0
0
0
0
0

1
1
1
1
1

f2: 0
0
0
0
0

0
1
0
0
0

1
1
1
1
1

0
0
0
0
0

Ilustracin 14. Patrn: Imagen P, f(x, y): imagen a reconocer.

Suponiendo que el patrn lo tenemos como una imagen binaria, y deseamos reconocer f(x, y)
que est en 3 bits. El proceso a seguir sera cambiar a binaria la imagen f(x, y) probablemente
aplicando la funcin umbral (f, 3) (el resultado se muestra en f2), y luego usando XOR para
hacer el reconocimiento. Tambin se puede usar la funcin igual para hacer el
reconocimiento. En cualquiera de los dos casos el resultado ser una matriz y no un valor que
de una medida de igualdad.
La siguiente expresin da una medida de igualdad (s) de P con respecto a f(x, y):

sumpix (igual (umbral ( f ,3), P )) 20

1
card ( P )
20

Otra forma sera aplicando la funcin entre, por ejemplo f1 de la ilustracin 29 muestra el
resultado de entre (f, 0,2), f2 de la misma ilustracin muestra entre (f, 4,7). La medida de
semejanza se obtiene con:

sumpix (igual (entre( f ,0,2), entre( P,0,0))) 20

1
card ( P )
20

Esto para el primer rango de f(x, y) entre 0 y 2, lo mismo se debe hacer para el rango 4 a 7, y
promediar los resultados de semejanza obtenidos.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 44

En general una expresin para evaluar la semejanza de una imagen f(x, y) con otra g(x, y) es:

sumpix(igual (entre( f , s, t ), entre( g , s, t )))


card ( f )

(25)

Donde s y t definen los lmites de cada rango, debiendo aplicarse los rangos necesarios
conforme sea el caso.
Es importante notar que el primer paso a realizar en reconocimiento es comprobar la
dimensin de las imgenes, esto se puede hacer con la funcin cardinalidad aunque no es una
garanta de igualdad de tamao. Se necesitara otra funcin para el efecto. Se deja como
trabajo al estudiante definir funciones que garanticen la comprobacin del tamao de dos
imgenes.
Ejemplo:
f=

2 2 3
3 1 14
0 13 14
15 15 7

p=

15
15
9
10

0 1 2
1 2 13
3 15 14
14 13 7

14
15
8
9

Se puede observar que tienen el mismo patrn


Entre (f, 0,3) =

1
1
1
0

1
1
0
0

1
0
0
0

Entre (p, 0,3)=

0
0
0
0

1
1
1
0

1
1
0
0

1
0
0
0

0
0
0
0

Una vez aplicada la funcin Entre a las dos imgenes , se procede al clculo de Igual entre las
dos resultantes, as:
Igual [ Entre(f, 0, 3), Entre (p, 0, 3) ] =

1
1
1
1

1
1
1
1

1
1
1
1

1
1
1
1

Sumpix { Igual [ Entre(f, 0, 3), Entre (p, 0, 3) ] } = 16, de modo que la relacin con la
Card(f) = Card(p) = 16 , nos resulta 1 o 100%.
Este proceso se repite para los 4 rangos y el resultado total es la media de los resultados
parciales.
Los 4 rangos son:
1.
2.
3.
4.

Colores negros: valores de 0 a 3, o rango de [0, 3]


Calores grises oscuros: [4, 7]
Colores grises claros: [8, 11]
Colores blancos: [12, 15]

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 45

Los intervalos son cerrados, es decir, incluyen a los valores de inicio y final.
Para nuestro ejemplo la medida de semejanza de las imgenes f y p es:
demostracin queda como trabajo para el estudiante.

100%, su

En general el reconocer implica sintetizar los atributos y propiedades de una imagen de


acuerdo a un patrn que permite mediante operaciones comparativas inferir su contenido.
A modo de ejemplo de la determinacin de la estructura de una imagen vea el siguiente
ejemplo en el que incluye tambin humor.

Proceso de
Aproximacin para
Descubrir el patrn
De la imagen

3.7 Problemas
1. Una imagen puede ser representada como una matriz de puntos, esta matriz identifica a
cada pixel de la imagen. Los valores de f(x,y) pueden ser (seale los enunciados
verdaderos):

Cualquier valor elemento de los reales.


Cualquier valor elemento de los enteros.
Cualquier valor elemento de los enteros positivos.
Solo valores comprendidos entre 0 y 255.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 46

2. Explique cmo se puede obtener una imagen digitalizada en color en 16M de colores.
3. Explique cmo se puede obtener una imagen digitalizada en color en 4k de colores, y qu
espacio ocupara si posee 200x200 pixeles
4. El rango de variacin de f(x, y) es: (complete).
Desde _____ hasta ______________ (valores en niveles de gris)
Desde _____ hasta ______________ (valores en bits)
5. Como se minimiza el error de cuantizacin.
6. Cul es el espacio necesario para almacenar una imagen binaria de 100 x 120 pixeles.
7. Cul es el espacio necesario para almacenar una imagen de 100 niveles de gris cuyas
dimensiones son de 200 x 200 pixeles.
8. Cuantos bits por pixel se necesita para almacenar una imagen de 100 niveles de gris.
9. Cul sera la manera de obtener una imagen digitalizada en 64k de colores.
10.

Para qu sirve la cuantizacin no uniforme:

11. Cul sera el efecto de usar cuantizacin no uniforme para obtener una imagen binaria. Es
posible esto, si s, indique como se realizara la cuantizacin.
12.

13.

En la imagen a continuacin seale con una D los pixeles vecinos ND y con una X
los pixeles de la vecindad N4.

Poner las distancias D4 y D8 del pixel sealado.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 47

14.

Calcule la resta, suma, divisin y multiplicacin de f con la imagen g:

15.

Realice las operaciones lgicas AND, NOR, XOR:

16.

Encuentre la imagen resultado de aplicar la matriz de transformacin (v = T v, imagen


de 3 bits)):

T:

Qu clase de transformacin es.


17.

Demuestre que la matriz de transformacin para la rotacin es:


T= cos sen
0
-sen cos
0
0
0
1

18.

Halle la matriz de transformacin para el reflejo.

19.

Halle las funciones: restriccin, umbral (f, 2), u (f), <f, g>:

f:

1
0

2
3

3
2

1
3

g:

0
0

1
1

1
0

u(f):
<f,g>:

rest

umbral

20.
21.

Diga las caractersticas de una imagen de 4 bits cuya u (f) = 12.


Describa un proceso mediante el uso de la funciones sobre imgenes para determinar
la igualdad de las dos imgenes a continuacin:
1 1 5 5 10 11
2
1 6
6 10 11
11
15
0 1 2 7
1
0 0
6 11 15
0 1 7 7 12 15
1
0 7
6 12 15
0
0
0
0

1
1
1
1

7
6
10
12

7
11
1
2

10
11
12
2

15
11
2
2

1
1
1
1

0
0
0
0

8
8
10
12

6
11
0
1

10
11
12
1

15
11
3
3

Use las funciones entre, igual y cardinalidad.


Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 48

22.
F

Diga cmo se puede hacer reconocimiento de imgenes con la funcin de


autocorrelacin. Aplique la explicacin a las imgenes a continuacin.
0
0
0

0
0
0

0
0
0

0
0
0

0
0
0
0

1
0
1
0

0
1
0
1

1
0
1
0

0
0
0
0
0
0
0

Procesamiento de Imgenes

0
0
0
0
0
0
0

g:

0
1
0

0
0
1

0
1
0

0
0
0

1
0

0
1

1
0

0
0

Guido Ochoa Moreno

Patrn:
1
0
1
0

0
1
0
1

1
0
1
0

Pgina 49

CAPITULO 4
Mejoramiento de Imgenes

Wiener, Norbert
(Columbia, EE UU, 1894-Estocolmo, 1964) Matemtico estadounidense.
Hijo de un profesor de lenguas eslavas emigrado a Harvard, fue un nio extremadamente
precoz que a la temprana edad de dieciocho aos obtuvo un doctorado de lgica matemtica
en Cambridge, Reino Unido, donde estudi con Bertrand Russell. Luego viaj a Alemania
para seguir estudiando en la Universidad de Gotinga. Tras fracasar en su intento de enrolarse
en el ejrcito y combatir en la Primera Guerra Mundial, en 1919 el Instituto Tecnolgico de
Massachussetts (MIT) le propuso organizar y estructurar un departamento de matemticas.
Cientfico de mltiples intereses, en la dcada de 1920 particip, junto con Banach, Helly y
Von Neumann, en el desarrollo de la teora de los espacios vectoriales; ms tarde, orientara
su atencin hacia las series y las transformadas de Fourier y la teora de nmeros. En los aos
cuarenta elabor los principios de la ciberntica, teora interdisciplinar centrada en el estudio
de las interrelaciones entre mquina y ser humano y que en la actualidad se encuadra dentro
del mbito ms general de la teora de control, el automatismo y la programacin de
computadoras. En 1947 public el ensayo Ciberntica o control y comunicacin en el animal
y en la mquina. Se interes por la filosofa y por la neurologa como reas del saber
fundamentales para la ciberntica. As pues, ms all de convertirse en ciencia, la ciberntica
abra un campo de reflexin interdisciplinar que aportaba distintos criterios a numerosas reas
de la tecnologa. En este sentido, en el avance de la construccin de autmatas y, sobre todo,
en el desarrollo de las computadoras, Norbert Wiener se erigi en uno de los grandes
precursores de la era digital con la que se inaugura el siglo XXI. (Diccionario de Biografas,
Ocano).

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 50

4.1 Mejoramiento de Imgenes


El mejoramiento de imgenes consiste en cambiar algn atributo de esta con el propsito de
mejorar la apreciacin de su contenido. El trmino mejoramiento es relativo a cada caso y lo
que para una imagen puede resultar en mejoramiento no es necesariamente bueno para otra.
Los mtodos de mejoramiento se pueden aplicar en el dominio del espacio (trabajando pixel
por pixel) o en el dominio de la frecuencia en donde se trabaja con las propiedades de la
imagen completa.

4.2 Mejoramiento por procesamiento de punto (pixel)


Este tipo de transformaciones convierte un pxel de nivel de gris r en un nivel de gris s
mediante una funcin del tipo:
s = T(r)

(1)

Que puede ser una lnea recta o una funcin no lineal.

4.2.1 Negativo de una imagen

Ilustracin 1. Transformacin para obtener el negativo de una imagen.

Convierte una imagen oscura en clara o viceversa. Este proceso cambia un pixel claro por uno
oscuro o al contrario de acuerdo a la escala de grises. La transformacin para obtener el
negativo es:
m =

s 2s1
0(L1)
=
= 1
r 2r 1
(L1)0

El lugar geomtrico de la lnea recta es:


m = 1 =

s 1s
s s
(L1)s
= 2
=
r 1r
r 2r
0r

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 51

Llegando a la frmula para calcular el negativo que es:

s = ( L1) r (2)

(Nivel de gris resultante = valor mximo - valor original), lo que corresponde a la ecuacin de
la lnea recta mostrada en la ilustracin 1, donde:
s: nivel de gris resultante
r: nivel de gris original
L: es el nmero de niveles de gris.
Ejemplo: Hallar el negativo de f(x, y) y el mismo tiempo expresar la imagen en 3 bits

m =

07
7
=
150
15

m =

s 2s
r 2r

7
7s
=
15
r

s = 7

7
r
15

4.2.2 Aclarar u Oscurecer imgenes


Mediante una transformacin similar a la anterior pero con rectas que posean pendientes
positivas, se puede aclarar u oscurecer una imagen.
La transformacin s = 9/12 . r corresponde a la primera transformacin de la ilustracin 31,
escrita de otra forma es s = 0.75 r, que en forma genrica sera s = m r donde m es la
pendiente de la recta. Si la pendiente es menor a 1 como en este caso, los niveles de gris
resultantes s tienen un menor valor que los niveles de gris originales r, por lo que la
imagen transformada se oscurece. Si la pendiente es mayor que 1 la imagen se aclara como en
el segundo caso de la ilustracin 31 en la que s = 1.1 r.
La tercera transformacin, hace un proceso combinado en donde el primer tramo aclara, el
segundo obscurece y el tercero vuelve a aclarar. Este tipo de transformacin se denomina
stretching.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 52

4.2.3 Contraste Stretching


Esta transformacin se especifica usualmente por tramos. Por ejemplo, la transformacin de la
grfica stretching anterior se especificara como: Intervalos en r: 0,2; 2, 10; y 10,12.
Intervalos en s: 0,4; 4,8; y 8,12.
El efecto de mejoramiento por stretching es similar al de cuantizacin no uniforme, sin
embargo, la cuantizacin no uniforme presenta resultados superiores puesto que el nmero de
niveles de gris de la imagen digitalizada no se afecta como cuando se aplica la transformacin
de stretching.
Ejemplo:
Hallar la transformacin de la imagen mediante Stretching, proponer una imagen donde no se
pierda la informacin (que tenga los mismo niveles de gris)

Imagen que no pierde informacin con 13 niveles de gris


Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 53

Imagen resultado =

0 1 2
4 13 14
9 8 10
5 1 2

3
15
12
12

4.2.4 Cambio del nmero de niveles de gris de una imagen


Las transformaciones mostradas hasta aqu sirven tambin para modificar el nmero de bits de
una imagen. Por ejemplo, si se desea pasar una imagen de 256 niveles de gris a binaria, la
transformacin sera tal que el valor de 255 se mapee en 1 y el 0 en 0. Esta transformacin
convertir a 1 todos los valores mayores que 127 y los restantes a 0.
En el caso de aumento del nmero de bits de una imagen, no es posible obtener una imagen
que posea ms niveles que la imagen original, a pesar de que el rango de variacin de los
niveles de gris de la imagen con ms bits es mayor.

4.2.5 Ajuste de rango dinmico


Las transformaciones revisadas hasta el momento permite cambiar el rango de niveles de gris,
aclarar u oscurecer la imagen, tambin pueden si se desea convertir una imagen de N niveles
de gris a M niveles de gris, con slo definir el rango de variacin de r entre 0 y N-1 y el
rango de s entre 0 y M-1.

Cuando se tienen rangos mucho ms amplios con muchos valores en el rango de 0 a 1, y


valores muy altos (> 10000), una transformacin lineal no es una buena tcnica, por ello, se
usa una transformacin exponencial expresada como:
s = C ln (1+|r|)

(3)

C = (L-1) / {max(ln (1+|r|)} = (L - 1) / ln (r)

(4)

El valor de la constante C se calcula de tal manera que para el mximo valor de r (max(r))
se cubra toda la escala de s.
La funcin logartmica ms utilizada es el logaritmo natural (ln).
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 54

4.2.6 Mejoramiento por Histograma


Este mtodo de mejoramiento de imgenes se basa en un anlisis probabilstico. El principio
bsico es que todos los niveles de gris de la imagen tengan la misma probabilidad de aparecer
en la misma.
Este mtodo requiere del clculo de la frecuencia probabilstica de los pixeles originales
para determinar en base a ella la nueva distribucin de la imagen mejorada.
Al grfico de la frecuencia probabilstica en funcin del nivel de gris r se denomina
histograma. A continuacin se presenta varios histogramas caractersticos.

Ilustracin 4. Ejemplos de histogramas de imgenes

La representacin grfica de este tipo de transformacin es semejante a la grfica mostrada a


continuacin.

Ilustracin 5. Transformacin que realiza el histograma.

El proceso de clculo de la imagen mejorada es el siguiente:


Sea rk el nivel de gris a ser procesado (i.e. el nivel de gris 4 corresponder a r4, r0 al nivel de
gris 0, etc.).
La probabilidad de cada rk est definida por: p(rk) = nk/n

(5)

Donde, nk es el nmero de ocurrencias del nivel de gris rk en la imagen y n es la cardinalidad


de la imagen.
El valor sk con el que se reemplaza el rk en cuestin esta dado por:
k

j 0

j 0

sk ( L 1) p(r j ) ( L 1)

Procesamiento de Imgenes

nj
n

L 1 k
n
n j 0 j

Guido Ochoa Moreno

(6)
Pgina 55

Donde L es el nmero de niveles de gris de la imagen mejorada.


Ajustando el valor de L se puede mejorar la imagen y al mismo tiempo cambiar su nmero de
niveles de gris.

4.2.7 Mejoramiento Local


El mejoramiento local es un proceso estadstico mediante el cual se intenta homogenizar la
imagen tratndola por zonas o vecindades. Una vecindad est compuesta por los pixeles de
distancia 1 en N8, es decir por una regin de 3x3 pixeles cuyo centro es el pixel que est
siendo procesado.
El mejoramiento local est dado por:
g(x,y) = A(x,y) [f(x,y) m(x,y)] + m(x,y)
Donde,

(7)

A(x,y) = k M/(x,y) 0<k<1


m(x,y): es la media de la vecindad
(x,y): es la de la vecindad
M: es la media de f(x,y)

La seccin de imagen a continuacin muestra la vecindad del pixel 8.


2
3
6

5
7
8
3
1215

4.2.8 Mejoramiento por Sustraccin de imgenes


El mtodo de mejoramiento se aplica a imgenes con ruido y presupone el conocimiento del
ruido.
El ruido es todo aquello que no forma parte de la imagen original y que se suma a ella por
defectos del medio en el que se transmite la imagen desde un lugar a otro. El ruido puede
aparecer como un resultado de la transmisin de imgenes o como el resultado de su
digitalizacin. Se puede representar el ruido como una imagen de las mismas dimensiones de
la imagen a la cual se halla afectando y generalmente se lo nombra con n(x, y).
Si una imagen es afectada por el ruido, la forma de obtener la imagen original o libre de ruido
(imagen mejorada) es a travs de una resta de la imagen ruidosa y el ruido.
Sea f(x, y) la imagen original, y g(x, y) la imagen a ser mejorada, entonces:
f(x, y) = g(x, y) - n(x, y)

(8)

f(x, y) es la versin mejorada de g(x, y) que debera ser igual a f(x,y), sin embargo no siempre
f(x, y) es igual a f(x, y) debido a problemas de saturacin
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 56

4.2.9 Mejoramiento por el Promedio de imgenes


Un enfoque ms realista de la eliminacin de ruido en la transmisin de imgenes es
considerar la imagen receptada como la suma de la imagen original (sin ruido) y el ruido que
ha afectado a la imagen durante el proceso.
Si f(x, y) es la imagen original sin ruido, la imagen recibida g(x, y) ser, f(x, y) + n(x, y)
donde n(x, y) es el ruido.
Si se considera que el ruido es de naturaleza gausiana, con media CERO y espectro de
potencia diferente de cero, este puede ser eliminado de la imagen g(x, y) si se obtienen varias
muestras (ejemplares) de ella y se calcula el promedio de las muestras.
As:
g1(x,y) = f(x,y) + n1(x,y)
g2(x,y) = f(x,y) + n2(x,y)
g3(x,y) = f(x,y) + n3(x,y)

(9)

Obteniendo el promedio se tiene que:

g ( x , y ) f ( x , y ) ( x , y ) f ( x , y ) 0

(10)

de este modo, el promedio de las imgenes gn(x, y) tiende a ser la imagen f(x, y). Esto es
cierto si se posee un nmero infinito de imgenes g(x, y), sin embargo, para fines prcticos, es
suficiente con obtener de tres a cinco ejemplares.

4.3 Filtrado Espectral


La forma correcta de corregir las deficiencias de una imagen es mediante un proceso que
permita eliminar ciertas caractersticas indeseables de la misma. En el dominio de la
frecuencia, una imagen no es ms que un conjunto de puntos que expresan la variabilidad de
la misma. La variabilidad de una imagen es su frecuencia, de modo que una imagen montona
posee frecuencias bajas (una imagen cuyos pixeles poseen todos el mismo color tiene
solamente la frecuencia de CERO), en cambio una imagen con gran variabilidad de los
niveles de gris de los pixeles poseen altas frecuencias.
En general una imagen con mucha variabilidad aparece tosca al ojo humano, por ello es
deseable que se eliminen las altas frecuencias de la imagen para que esta sea menos brusca.
Si se eliminan las altas frecuencias de una imagen, se eliminan las variaciones bruscas.
El proceso mediante el cual se eliminan frecuencias de una imagen se denomina filtrado
Los filtros reales, se disean de modo que una seccin de frecuencias pasa intacta
(multiplicada por la unidad), y otra se atena de forma que las frecuencias no deseables se
eliminan. En el grfico a continuacin se muestra tres funciones en frecuencia que sirven para
filtrar seales en una dimensin.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 57

Ilustracin 6. Filtros en el dominio de la frecuencia.

En dos dimensiones, la transformada de Fourier (FFT) de una imagen a ms de mostrar su


composicin de frecuencias, las ubica espacialmente, de modo que las frecuencias ms bajas
aparecen al centro de la matriz y conforme se alejan del centro, la frecuencia aumenta, as, las
esquinas de la matriz son los puntos donde se hallan las frecuencias ms altas.

Ilustracin 7. Zonas de localizacin de las frecuencias altas y bajas al realizar la FFT. Las regiones marcadas con
PA (Pasa Altos) corresponden a las frecuencias altas.

Al obtener la FFT (Transformada Rpida de Fourier) de una imagen se tiene una matriz de las
mismas dimensiones de la imagen en la que cada valor representa la magnitud de la
componente de frecuencia.
En la ilustracin 7 se aprecia las zonas que se deben conservar para realizar el filtrado de la
imagen. Las zonas marcadas con PA se deben conservar para hacer un filtrado Pasa Altos, es
decir, un filtro que elimine las frecuencias bajas y deje pasar las altas.
Por simplicidad, se trabaja con regiones rectangulares y con filtros del tipo Todo o Nada de
modo que la aplicacin del filtro se reduce a llenar con ceros la regin que se desea eliminar
con el filtro y conservar el resto de valores.
La grfica a continuacin muestra los filtros del tipo Todo o Nada para una dimensin:

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 58

La frecuencia fc, se denomina frecuencia de corte, y es la frecuencia hasta la cual se conserva


o se eliminan valores de la seal original F(u).
El filtro pasa altas conserva las frecuencias mayores o iguales a fc. De acuerdo con el filtro
mostrado en la figura anterior (a), filtrar una seal consiste en multiplicar la funcin del filtro
con la transformada de Fourier de la seal a filtrar, el resultado, debe ser expresado
nuevamente en el dominio del tiempo mediante la transformada inversa de Fourier para
observar los efectos producidos por el filtrado.

Ilustracin 9. Filtrado en dos dimensiones con zonas rectangulares.

Para el caso de imgenes, los filtros son en dos dimensiones, y en este caso existen dos
frecuencias de corte, una para cada eje:
El valor de las frecuencias de corte, usualmente se define a modo de porcentajes, de modo que
si fc = 1, pasa toda la imagen, si fc = 0, se elimina toda la imagen.
Las grficas a continuacin muestran el filtrado mediante pasa bajos.

Ilustracin 10. Imgenes filtradas con filtros pasa bajos.

La imagen derecha es el resultado de aplicar un filtro pasa bajos con fc = 0.07. (Se conserva
el 95% de los puntos de la FFT). El resultado de aplicar a la misma imagen, un filtro pasa
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 59

altos se muestra a continuacin:

Ilustracin 11. Imagen filtrada con filtro pasa altos.

Para implementar los filtros usando el Octave, (Matlab y otros similares), se debe tomar en
cuenta que por cuestiones de algoritmos, la distribucin de los valores de altas y bajas
frecuencias es contraria a la teora, es decir, que las frecuencias bajas se halla ubicadas
cercanas en las esquinas y conforme nos alejamos de ellas aumenta la frecuencia.

4.4 Filtrado Espacial


Se usa el trmino espacial para designar el procesamiento hecho en el dominio del espacio, o
sea, sin necesidad de aplicar la Transformada de Fourier.
Esta clase de filtros est basada en la convolucin de una mascarilla (filtro) con la imagen a
filtrar. El resultado es la imagen filtrada.

Ilustracin 12. Modelo de aplicacin de un filtro como la convolucin de la imagen a filtrarse y el filtro f(x,y)
= f(x,y) * h(x,y).

Para el clculo de la convolucin, simplemente se hace coincidir el centro de la mascarilla con


el pixel a filtrar, y se calcula el valor del nivel de gris resultante como la sumatoria de los
productos punto a punto de las dos imgenes, la mascarilla y la seccin de la imagen que
cubre la mascarilla.
El proceso de filtrado con mascarilla se lo hace pixel por pixel, y generalmente no se efecta
sobre los pixeles del borde de la imagen.
Para que una mascarilla (matriz) sea un filtro esta debe cumplir con las siguientes
condiciones:
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 60

1. La matriz o mascarilla debe ser simtrica. La simetra en dos dimensiones se ve con


respecto al pixel central o al centro de la matriz en caso de que la matriz no posea un pixel
central (dimensiones pares). Se dice que existe simetra si al recorrer la matriz desde su
centro se tienen los mismos valores en direcciones opuestas.
Ejemplos:
1
1

a
a

1
1

a
a

1
2
2
2
1

2
3
2
3
2

2
4
5
4
2

2
3
2
3
2

1
2
2
1
1

-1
2
-1

2
10
2

-1
2
-1

0.1

-.01

0.1

-.01

-10

-.01

0.1

-.01

0.1

Ilustracin 13. Filtros simtricos

La otra condicin es la de ser unitaria, es decir, que sumpix(filtro) = 1. Esta condicin solo
se aplica a las mascarillas de los filtros pasa bajos.
A continuacin se detallan las mascarillas para los filtros ms utilizadas y estndares. Note
que siguiendo las condiciones que debe cumplir un filtro se pueden proponer una infinidad de
mascarillas que hagan las labores de filtros pasa bajos y filtros en general.

4.4.1 Mascarilla de los filtros Pasa Bajos o Filtro Suavizante


1 1 1
1

1 1 1

9
1 1 1

4.4.2 Filtros pasa altas o Filtro Realzantes

4.4.3 Filtros de nfasis en frecuencias altas High-boost

Si A=1, se tiene el filtro pasa altos original o estndar. Si A 1, parte de la imagen original se
suma al resultado pasa altas.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 61

4.4.4. Filtros Derivativos


Nos permiten obtener la derivada de una imagen. Existen dos propuestas: una de Prewitt y
otra de Sobel. Ambas estn basadas en la descomposicin de f(x, y) en derivadas parciales.
Usando el operador nabla se puede expresar este clculo como el gradiente de f(x, y):
f =

f/x + f/y

f = mag [f]
= [(f/x) 2+ (f/y) 2]

Prewitt:

Sobel:

4.4.5 Modo de aplicacin de la mascarilla


Para filtrar una imagen con la mascarilla se sigue el siguiente proceso:
i) Por comodidad se aplica el filtro slo a los pixeles internos, o sea, que no se filtran los
pixeles del borde de la imagen.
ii) El filtro se aplica para un slo pixel a la vez.
iii) Se hace coincidir el centro del filtro con el pixel que se va a filtrar, y se calcula la
sumatoria punto a punto de los pixeles cubiertos por el filtro. El valor resultante se
redondea y es el nivel de gris resultado.
iv) Se hace el proceso de filtrado con los valores originales de la imagen, los valores de
resultado de cada pixel componen la imagen resultado que es otra matriz. Esto implica que
el proceso no puede ser hecho usando una sola matriz de imagen.
f: 1
0
0
0
0
0
0

1
1
1
13
10
10
1

5
2
7
4
6
10
12

5
7
7
11
11
1
2

10
11
12
10
11
12
2

11
15
15
15
11
2
2

filtro:

f:

1/9

1/9

1/9

1/9

1/9

1/9

1/9

1/9

1/9

1
0
0
0
0
0
0

10

11

12

11
15
15
15
11
2
2

Ilustracin 14. Aplicacin de la mascarilla a la imagen f(x, y).

Filtrando el pixel sealado (7), con el filtro pasa bajos, se sede calcular la sumatoria:
1/9(1+2+7 + 1+7+7 + 13+4+11) = 53/9 = 5.8888888, este valor se redondea para expresarse
como nivel de gris, de modo que el resultado es 6.
Se deja al estudiante el completar el proceso de filtrado.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 62

Ejemplo de filtrado derivativo:

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 63

4.5 Problemas
1
a)
b)
c)
d)

De la imagen en 4 bits a continuacin hallar:


El negativo,
Aplicar T(r) a la imagen con m= 1.2, m= 0.8.
Cambiar mediante el histograma a 256 niveles de gris.
Stretching con variaciones en r de: 0,1; 1,8; 8,15 y en s de 0,4; 4,12; 12,15.

10 15

10 1
5

n:

1.2

0.8

10 15

10 15 1

256NG:
Stretching:

Mejore la imagen anterior aplicando el histograma.

Use el mejoramiento por histograma para mejorar y al mismo tiempo convertir la


imagen anterior a 32 niveles de gris (5 bits).

Encuentre la transformacin que permita expresar la imagen anterior en niveles de gris


comprendidos entre 4 y 12.

Halle las transformaciones (s=T(r) ) necesarias para:

a) Convertir una imagen de 3 a 5 bits:


b) Convertir el negativo de una imagen de 3 bits en binaria:
c) Visualizar en 4 bits la FFT de una imagen, si esta presenta valores que oscilan entre
10 -1 y 107:
6

Por qu el mejoramiento por la sustraccin de imgenes no funciona.

En que se fundamenta el mejoramiento por el promedio.

EL nmero de operaciones para mejoramiento local es proporcional al nmero de: ( )


niveles de gris, ( ) pixeles. (Seale la opcin correcta).

Como se manifiestan en una imagen las frecuencias bajas y las frecuencias altas.

10 Porque en el filtro de mascarilla no se puede eliminar un porcentaje determinado de


frecuencias altas o bajas.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 64

11 Aplique a la imagen el filtro pasa bajos, pasa altos y High Boost con A = 1.5.
0
5
6
8

5
10
1
4

9
1
8
15

15 r1:
12
5
2

r2:

r3:

12 Disee filtros pasa bajos con coeficiente de 1/7, 1/8, 1/9, y 1/12.5.

13 Disee filtros pasa altos con elemento central de 6, 7, 8 y 10.

14

Aplique el filtro derivativo de Prewitt y Sobel a la imagen del problema anterior.


Compare los resultados obtenidos.

P:

S:

15 Halle la zona que se debe eliminar para filtrar una imagen de 100 x 100 usando
Fourier con un filtro pasa bajos, si fc = 0.5%. (Se debe conservar el 0.5% del total de
los puntos).
16 Halle la zona que se debe eliminar para filtrar una imagen de 100 x 100 usando
Fourier con un filtro pasa altos, si fc = 0.5%. (Se debe conservar el 0.5% del total de
los puntos).

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 65

CAPITULO 5

Procesamiento en Color

Huygens, Christiaan
(La Haya, 1629-id., 1695) Matemtico, astrnomo y fsico holands.
Hijo del poeta renacentista Constantin Huygens, pronto demostr un gran talento para la
mecnica y las matemticas. Estudi en la Universidad de Leiden y en el Colegio de Breda.
Huygens adquiri una pronta reputacin en crculos europeos por sus publicaciones de
matemticas y por sus observaciones astronmicas, que pudo realizar gracias a los adelantos
que introdujo en la construccin de telescopios. Destacan, sobre todo, el descubrimiento del
mayor satlite de Saturno, Titn (1650), y la correcta descripcin de los anillos de Saturno,
que llev a cabo en 1659. Ms tarde se traslad a Pars, donde permaneci desde 1666 a 1681,
fecha de su regreso a La Haya. En 1666 fue miembro fundador de la Academia Francesa de
Ciencias. En 1673 se public su famoso estudio sobre El reloj de pndulo, brillante anlisis
matemtico de la dinmica pendular en el que se incluyeron las soluciones completas a
problemas como el perodo de oscilacin de un pndulo simple y las leyes de la fuerza
centrfuga para un movimiento circular uniforme. Contemporneo de Isaac Newton, su
actitud mecanicista le impidi aceptar la idea de fuerzas que actan a distancia. El mayor
logro de Huygens fue el desarrollo de la teora ondulatoria de la luz, descrita ampliamente en
el Trait de la lumire (1690), y que permita explicar los fenmenos de la reflexin y
refraccin de la luz mejor que la teora corpuscular de Newton. (Diccionario de Biografas,
Ocano).

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 66

Antes de entrar en materia de procesamiento en color, se necesita definir algunos trminos


relacionados con color:

Luminancia: cantidad de luz que el observador puede percibir


Potencia: Se mide en vatios (w) y corresponde a la Radiacin de energa.
Brillo: subjetivo ( no medible)

La CIE (siglas en Francs de: International Commision on Illumination), ha definido los


colores primarios Rojo, Verde y Azul (RGB) conforme a la longitud de onda de la luz para
estandarizar su uso. As, los colores RGB poseen las siguientes longitudes de onda () dentro
del espectro visible de la luz que va desde los 400 a los 740 nm.

Rojo:
Verde:
Azul:

R, = 700 nm
G, = 546.1 nm
B, = 435.8 nm

(0)

Es necesaria la definicin a nivel de longitudes de onda de los colores debido a que en general
los colores dependen de quien los mira, as, existir un conjunto de colores primarios RGB
por cada observador.

5.1 Modelos de Color


5.1.1 Modelo RGB
Desde el punto de vista de colores que se suman (aditivos) como es el caso de la luz, el
modelo primario de color es RGB, y existe otro modelo, uno secundario de colores que
presenta una naturaleza contraria a la aditiva, este modelo es el CMY.
Los colores RGB y CMY se relacionan entre s de acuerdo al modelo RGB (combinacin de
colores en Luz) como:

Magenta = Red + Blue


Cyan
= Green + Blue
Yellow
= Red + Green

La suma en iguales proporciones de los colores RGB nos da el color BLANCO. La ausencia
de estos colores es el NEGRO.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 67

Un diagrama de los colores RGB trazado en las coordenadas RGB se muestra a continuacin:

5.1.2 Modelo CMY


El modelo CMY (Cyan celeste, Magenta morado, Yellow amarillo) es el utilizado para
combinar pigmentos. Desde el punto de vista de pigmentos este es el modelo primario y el
RGB es el secundario. Los colores CMY se pueden ubicar en el grfico RGB tal como lo
muestra la figura anterior, o en un diagrama con ejes CMY, en cuyo caso, los colores RGB
figuraran como las esquinas del cubo alejadas de los ejes, el color Blanco en el origen, y el
Negro en el vrtice opuesto.
En el modelo CMY la ausencia de color es el BLANCO y la combinacin de CM y Y en
iguales proporciones nos da el NEGRO.
En el modelo CMY el manejo de tonalidades en forma anloga a la intensidad de colores
RGB se logra con la combinacin de un color logrado mediante una combinacin CMY con el
color Blanco o con el color Negro. La dificultad del manejo de tonalidades en CMY ha dado
lugar al modelo CMY-K, donde K representa el color NEGRO. Otro esquema de colores usa
el blanco en lugar del negro en combinacin con los colores CMY.

El modelo CMY-K es una variante del CMY, donde K significa Negro, es decir, por lo que se
lo conoce y tambin como CMY-B, pero esta B puede confundirse con el Azul (Blue) del
modelo RGB.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 68

Queda como trabajo para el estudiante consultar como se convierte un modelo CMY en
CMY-K.

5.1.3 Modelo YIQ


Este modelo se usa para la transmisin de seales de TV. Las iniciales YIQ representan:
Y:
I:
Q:

Iluminacin o brillo.
Componente del color para ser transmitido con portadora en fase. (Inphase)
Componente del color para ser transmitido con portadora en cuadratura. (Quadrature).

Con respecto a su relacin con RGB, el modelo YIQ representa un color cualquiera como la
combinacin de Brillo y Contraste. La cromancia (color) es la suma del Brillo y el contraste
(Hue).
El Brillo es la cantidad de color o intensidad de las componentes RGB, vistas como tres
lmparas encendidas con una determinada emisin de luz, cuya combinacin hace que un
color se vea ms o menos brillante.
El Contraste (Hue) es el color dominante percibido por el observador, o la nitidez con que un
color es presentado al observador.
La Cromancia o el color, resulta entonces una combinacin de las dos anteriores, es decir,
Contraste + Saturacin = Cromancia.
Los Tristmulos son las tres cantidades de RGB necesarios para obtener un color, expresados
como porcentajes de R (r), G (g) y B (b). As:
r = R/(R+G+B)
g = G/(R+G+B)
b = B/(R+G+B)

(1)

Ilustracin 2. Diagrama de Cromancia


Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 69

Como r + g + b = 1, un color es completamente especificado por dos de los tres componentes.


Los componentes r, g, y b se denominan coeficientes tricromticos.

5.1.4 Diagrama de Cromancia


Este diagrama muestra un mapa de colores en funcin de los dos tricromticos r y g. Su uso
principal, a pesar de estar representado en el modelo RGB es obtener las componentes CMY,
tal como se ver ms adelante.
El diagrama de cromancia muestra las componentes de cada color en los ejes r y g, pero como
r + g + b = 1, el tercer componente se obtiene por diferencia. El eje r puede ser el eje c con
slo cambiar su sentido de crecimiento, lo mismo para el eje g, con lo que el diagrama de
cromancia quedara graficado en los ejes c y m.
La tercera componente del modelo CMY se obtendra mediante la transformacin de colores
del modelo RGB al CMY, lo cual determina que la componente y sera igual a:
y = 2 (c + m)

(2)

5.1.5 Modelo HSI


Los modelos de color RGB, YIQ, HSI se pueden usar para hacer procesamiento de imgenes,
sin embargo, slo con el modelo HSI es posible trabajar con una imagen sin o alterar los
colores, modificndose slo el brillo.
Las iniciales de este modelo son: Hue (Contraste), Saturation (Saturacin) e Intensity
(Intensidad).
Este modelo es similar al YIQ, sin embargo, las componentes H y S no son tratadas como un
todo como en el caso de IQ en el modelo YIQ. H y S definen el color e I define la intensidad o
el nivel de color, algo similar al nivel de gris en imgenes expresadas en niveles de grises o
monocromticas.
La componente I del modelo HSI es el nivel de color, es decir, el Nivel de gris equivalente
si la imagen es expresada en Niveles de Gris.

5.2 Conversin de modelos de color


Para la conversin de un modelo a otro, se debe tomar en cuenta que el rango de variacin de
las componentes ser siempre el intervalo cerrado [0,1], es decir, que los valores de las
componentes oscilaran entre 0 y 1 inclusive. Donde 0 significa ausencia de color y 1 es la
expresin mxima del color, o el color en su mxima intensidad.
Estos valores propuestos aqu de 0 y 1 debern ajustarse a los valores permitidos de intensidad
de un color en la representacin de la imagen. Ejemplo: en imgenes monocromticas de 16
niveles de gris, el valor de mxima intensidad es 15. As el intervalo de color en un esquema
similar ser de 0 a 15 en lugar del de 0 a 1.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 70

5.2.1 De RGB a CMY


En el diagrama de colores RGB en los ejes RGB, se puede observar que los colores ubicados
en esquinas opuestas como el Negro y el Blanco, son colores negativos el uno del otro. As, el
Blanco es el negativo del Negro, el Cyan del Rojo, el Magenta del Verde, y el Yellow del
Azul.

En una escala de colores en donde la mxima intensidad de color sea la unidad, el negativo de
un color se puede expresar como lo que le falta para llegar a su mxima intensidad, es decir,
un gris es el color blanco menos la cantidad de color negro lo compone, as, si no hay
presencia de negro el color es completamente blanco. Por analoga, el color C sera calculado
como: C = 1 - R; M = 1 - G; y, Y = 1 - B. En forma matricial la transformacin de colores
sera:

(3)

5.2.2 De CMY a RGB


La conversin CMY a RGB se obtiene simplemente despejando RGB de la ecuacin anterior,
as:

(4)

5.2.3 De RGB a YIQ


Para la conversin de RGB a YIQ se aplica la matriz de transformacin:
Y

I
Q

0.299 0.587 0114


. R


0.596 0.275 0.321 G
0.212 0.523 0.311 B

(5)

Haciendo A la matriz de transformacin, nos queda:


Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 71

Y
R


I G
Q
B

5.2.3 De YIQ a RGB


Despejando RGB nos queda:

, donde A-1 es la matriz inversa de A.

(6)

5.2.4 De RGB a HSI


Para convertir del modelo RGB a HSI se necesita de los tricromticos.

G
RG B

R
RGB

B
RG B

Donde, r + g + b = 1

Las Componentes HSI se calcula a partir de:

(7)
S 1

3
min R , G , B
( R G B)

2 ( R G ) ( R B)
H cos

( R G ) 2 ( R B )(G B )

(8)

(9)

Se debe corregir el valor de H por H = 360 - H, si (B/I) > (G/I). Note que el rango de
variacin de los ejes RGB es de 0 a 1.
Si S = 0, H no est definida.
Si I = 0, la componente S no est definida.

5.2.5 De HSI a RGB


Para la conversin a RGB desde HSI, se debe analizar el valor de H.
a) Para 0 < H 120
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 72

(10)

(11)
(12)
luego, se usa R 3Ir , G 3Ig , B 3Ib para llegar a RGB, en todos los casos de H.
b) Para 120 < H 240, primero de re calcula H como H = H - 120.

(13)

(14)
(15)
c) Para 120 < H 240, primero de re calcula H como H = H - 240.

(16)

(17)
(18)
Tal como se ve en la conversin de RGB a HSI, la componente I no es ms que la proyeccin
de un color cualquiera sobre el vector de niveles de grises. Dicho de otra forma, la
componente I es el promedio de las componentes RGB (ecuacin 7). La I de HSI es entonces
el nivel de gris equivalente a un color expresado en componentes RGB o HSI, y por ello, se
pueden aplicar todos los conocimientos de procesamiento de imgenes desarrollados para
niveles de gris a imgenes en color. Por ejemplo, se puede aclarar, oscurecer, aplicar el
histograma, etc.
El procesamiento de imgenes usando HSI difiere del realizado en RGB porque en HSI no se
alteran los colores, sin embargo, a pesar del cambio de colores, si se usa el procesamiento de
imgenes en color trabajando independientemente en cada una de sus componentes.

Escala de grises manejando intensidades de color


Una alternativa para obtener el nivel de gris de una imagen en color adems de la componente
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 73

I del modelo HSI, es el manejo de intensidades relativas de color, mediante este concepto, el
nivel de gris de un color RGB dado es:
I = 0.299*R + 0.587*G + 0.114*B.
Al aplicar es mecanismo, un color RGB: 60B4A7 se transforma en:
I=0.299(96)+0.587(180)+0.114(167)=153en lugar de
I=(96+180+167)/3=181
Las diferencias mas notorias se hallan en colores puros como FF0000, 00FF00, y 0000FF que
se convierten en 76, 149 y 29. De este modo, el rojo es un color claro y los otros dos oscuros,
siendo el azul ms oscuro de todos.

5.2.6 De RGB a CMY-K


La conversin de RGB a CMY-K se la realiza mediante dos etapas, en la primera se hace la
conversin a CMY y en la segunda desde CMY a CMY-K.
Conversin de RGB a CMY: esto ya fue explicado anteriormente, as:

[ ] []
C'
R
M ' =1 G
Y'
B

Por ahora llamaremos C'M'Y' a las componentes del modelo CMY y C M Y K a los del
modelo CMY-K.
Valor de K: El segundo paso es hallar el valor de K. Esta componete es una matriz compuesta
por los valores mnimos de C'M'Y' en cada posicin de pixel.
Valores C M Y: Estos valores del modelo CMY-K resultan de restar el valor de K de las
matrices C' , M' o Y'.
Ejemplo: convertir a CMY-K la siguiente imagen:

] [

R= 3 11 G= 12 6
0 10
0 15

] [ ]
B= 5 9
0 12

Primero se obtiene los valores de C'M'Y' conforme el modelo CMY:

C '= 12 4
15 5

] [ ]

M '= 3 9 Y '= 10 6
15 0
15 3

Se obtiene luego K como el valor mnimo de C'M'Y' en las posiciones respectivas:

K= 3
15

4
0

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 74

Finalmente se obtiene los valores de CMY-K:

[ ] [ ] [ ] [

C= 9 0
0 5

M= 0 5 Y = 7 2
0 0
0 3

K= 3 4
15 0

5.3 Aplicaciones de color


Uno de los problemas ms comunes para los desarrolladores de pginas web es la
combinacin de colores entre el color de fondo y el color del texto, o entre los diferentes
colores de texto que puedan ir acorde con un fondo o con los colores corporativos que
identifican a una empresa.
En el esquema RGB que se usa para definir un color en html, se tiene un universo de 16M de
colores (16,777,216 colores) de modo que la bsqueda de un color que combine con otro se
transforma en una tarea muy complicada y capaz de consumir mucho tiempo, puesto que hay
que seleccionar de entre los restantes 16M 1 (16,777,215) el color adecuado.
Para solucionar el problema partiremos desde el principio, es decir, debemos tomar en cuenta
que un color siempre combina bien con su negativo.
En html un color se expresa como seis nmeros hexadecimales de los cuales los dos primeros
representan el nivel del Rojo, los dos siguientes el nivel de Verde y los dos ltimos el nivel de
Azul, as el blanco ser FFFFFF y el rojo FF0000. Para obtener el negativo slo se necesita
restar las componentes del mximo valor que es FFFFFF.
Color negativo = FFFFFF - color original

(19)

Ejemplos:
El negativo de blanco (FFFFFF) es el negro (000000).
El negativo del amarillo (FFFF00) es el azul (0000FF).
El negativo del color (34F127) es (CB0ED8).
El negativo del color (69815A) es (967EA5).
Si tenemos el color A14835, se puede obtener tonalidades de este color base que tengan un
tinte ms rojo si aumentamos su valor de nivel rojo, por ejemplo cambiando A1 por B0. Se
puede lograr el mismo efecto si en vez de aumentar su componente roja, se disminuyen las
otras dos componentes, as el color A13825 ser ms rojo que el color original, pero con
menor intensidad de color, es decir, ms oscuro. En general si se desea cambiar el color
original hacindolo ms verde, rojo, azul, magenta, celeste o amarillo, lo que se debe hacer es
aumentar el valor de las componentes del color o disminuir los valores de composicin del
color negativo.
Para aclarar u oscurecer un color se debe aumentar o disminuir los valores de todas las
componentes. Si en el afn de aclarar un color producimos su saturacin en uno de sus
componentes, se puede continuar aclarando el color aumentando las otras componentes hasta
llegar al color ms claro de todos que es el blanco. De igual forma el mximo oscurecimiento
de un color ser cuando todas sus componentes hayan llegado a cero. No es correcto afirmar
que si en una componente ya se ha alcanzado el lmite no es posible aclarar ms u oscurecer
ms un color, el lmite es el color blanco (FFFFFF) o el color negro (000000)
respectivamente.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 75

La recomendacin para combinar colores se resume a continuacin:


1. Buscar tonalidades ms claras o ms oscuras del mismo color.
2. Buscar tonalidades ms rojas, verdes, azules, celestes, magentas, o amarillas del color.
3. Para combinar colores se puede usar como primera opcin el negativo, si no es
adecuados se pueden usar variaciones del color negativo segn los pasos 1 y 2.
4. El color que siempre combinar con colores claros es el negro. Entonces, las
tonalidades ms claras del color negativo combina siempre con colores oscuros.
5. El color que siempre combinar con colores oscuros es el blanco. Entonces, las
tonalidades ms oscuras del color negativo combina siempre con colores claros.
Ejemplo: Halle combinaciones posibles para el siguiente color: 7855DD.
Si se trata de buscar un color de fondo o de primer plano para el color dato, su negativo es la
primera opcin: 87AA22.
Si queremos color ms claro podemos probar con: 97BA32, A7CA42, E7FF82.
Si queremos colores ms oscuros, pueden ser: 779A12, 678A02, 375A00, 709010.
Si queremos colores ms amarillos: 87AA12, 87AA02, 97BA22, C7DA22, FFFF22.
Si se buscan colores ms verdes: 87BA22, 87CA22, 87FF22, 77DD12.
Si queremos colores ms celestes (cyan): 47AA22, 37AA22, 87BA32, 87EA62.
Ms amarillo y al mismo tiempo ms blanco: C7DA42.
El mtodo ms comn consiste en incrementar los valores de 16 en 16 (base 10 y 10 base
hexadecimal) es decir, pasar de un color 457788 a 558798 si se quiere hacerlo ms claro.
Recuerde que las componentes estn en hexadecimal y que A1 + 10 = B1 y que 10 en
hexadecimal es 16 en decimal.
Con el mtodo anterior, es posible que ni siquiera veamos el color con el que se quiere
combinar y que se presente una combinacin adecuada en forma casi mecnica sin ocuparnos
de los problemas de esttica que pueden llevarnos a dilemas infinitos y en la mayora de los
casos frustrantes, al no poder conseguir un buen par de colores.
Ejemplos:
1.- Dado el color base A1 2F BC obtener:
El negativo: 5E DO 43
El color mas claro (en 1 unidad): A2 3O BD
El color ms claro (en 2 unidades): A3 31 BE
Color ms rojo: 6E DO 43
Color menos rojo: 4E DO 43
2.- Dado el color base 63 A1 DD obtener:
El negativo: 9C 5E 22
Color mas rojo: AC 5E 22
Color ms verde: 9C 6E 22
Color ms azul: 9C 5E 32
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 76

Color mas blanco: AC 6E 32


Color ms negro: 8C 5E 12
Color ms cyan: 8C 5E 22
Color ms magenta: 9C 4E 22
Color ms amarillo: 9C 5E 12
3.- Pasar de RGB a CMY la siguiente imagen en 3 bits.
R= 7 1 G= 0 4 B= 0 6
7 0
3 6
4 7

[ ] [ ] [ ]

El resultado resulta de restar los valores RGB de el valor mximo posible: 7

[ ] [ ] [ ]

C= 0 6
0 7

M= 7 3 Y= 7 1
4 1
3 0

4.- Preparar 100 ml de tinta del color CMY de la figura anterior (C=7, M=1 y Y=0).
7
C= 100 ml , donde los 100ml es lo que requiere el cliente, as, C = 87.5 ml
8
1
M = 100 ml=12.5 ml , la cantidad necesaria de Y es 0 ml.
8

5.4 Pseudocolor
Llamado tambin Falso Color, es un proceso que permite colorear una imagen
monocromtica. Este proceso de coloracin es slo con propsitos de visualizar mejor el
contenido de informacin de la imagen, de ninguna manera pretende encontrar los colores
verdaderos correspondientes a las tonalidades de grises.
En una imagen en niveles de gris, se tiene slo una matriz f(x,y) que representa la imagen, en
cambio, en color, es necesario como mnimo tener tres matrices, una por cada uno de los
componentes de color de la imagen.
El proceso de coloracin de una imagen monocromtica es:

Ilustracin 3. Proceso de obtencin del pseudocolor. Se parte de una imagen en niveles de gris f(x, y) y se
obtienen tres imgenes fR(x, y), fG(x, y) y fB(x,y) que son las componentes de color rojo, verde y azul.

Para hallar fR(x,y), es necesario realizar una transformacin sobre f(x,y). Esta transformacin
debe adems ser independiente de las usadas para hallar las dems componentes puesto que se
necesita encontrar una representacin que de ser necesario permita reversar el proceso. Sin
embargo, en la gran mayora de los casos, la condicin de independencia puede ser eliminada
puesto que no es necesario volver a la versin monocromtica o se dispone de una copia
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 77

original de f(x,y).
Las transformaciones ms utilizadas son como las mostradas en el grfico a continuacin (la
escala del eje horizontal es de 0 a L-1, y el vertical de 0 a N-1, donde el nmero total de
colores es N3 ):
Rojo

Verde

Azul

La transformacin ilustrada es una sinusoide que est desplazada 60 de un color a otro. El


problema 11 presenta un modelo de transformaciones ms simple.
Otra forma de transformacin muy utilizada en procesos de coloracin de imgenes obtenidas
con radar o mediante radiacin de infrarrojos, consiste en un slo arco de sinusoide que
mapea todo el rango de grises, y que se halla desplazada tambin 60 de color a color.
El pseudocolor se usa tambin para colorear mapas o secciones de niveles de gris relacionadas
con magnitudes fsicas, como por ejemplo, una imagen cuyos valores de nivel de gris
representen curvas de nivel en un mapa.
Para colorear dentro de un rango definido de colores se usa el mapa de cromancia. El proceso
consiste en:
1) Definir cuales son los colores extremos de la escala.
2) Sobre el mapa de cromancia, trazar una lnea recta que una los dos extremos, es posible,
que se desee una gama especial de variacin que incluya colores que no se hallan sobre la
recta, en cuyo caso se debe trazar una lnea que atraviese los colores deseados.
3) Dividir la lnea en tantos tramos como niveles de gris existan, y asociar un punto de cada
tramo a un nivel de gris. Este punto, define el color que ha de reemplazar al nivel de gris
de la imagen a colorear.
4) Encontrar los componentes RGB de cada punto y aplicar a la imagen monocromtica de
acuerdo al color que corresponde a cada nivel.
Ejemplo de imagen tomada desde un satlite y coloreada con pseudocolor.

Ilustracin 5. (b) Imagen capturada mediante una pelcula sensible a la luz infrarroja, (a) Imagen coloreada
usando pseudocolor.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 78

Gama de Colores:

Si se desea ir desde el color Verde (10A050) hasta el color CAF (906010), usando 5 colores
intermedios, se requieren de 6 pasos o cambios de color, tal como se muestra a continuacin:

Tamao del Paso B =

B
n+1

Donde n es el nmero de colores intermedios y B es la distancia que separa cada


componente de color (R G B).

5.4 Problemas
1. Dibuje el diagrama de colores con los ejes R,G y B. Ubique los colores C, M y Y, y la
gama de grises.
2. Dibuje el diagrama de colores con los ejes C,M y Y. Ubique los colores R, G y B, y la
gama de grises.
3. Convierta a tonos de gris la siguiente imagen en 4 bits:
(R, G, B):
0
1
1
4

10
10

11
0

Procesamiento de Imgenes

6
6

7
7
Guido Ochoa Moreno

Pgina 79

(R, G, B):
10 11
1
4

1
10

11
2

0
0

9
15

4. El procesamiento de imgenes en color puede realizarse de manera separa trabajando en


cada una la las componentes. Por ejemplo en el Modelo RGB, se debera procesar la
componente R, luego la G y luego la B. Verdadero ( ) o Falso ( ).
5. El color rojo debe tener componentes como: Seale todas las que se aplican.
r=0
g=b=0
r=g=b=1/3.
R=100, G=0, B=0.
R=255, G=B.
r=1
6. En el modelo CMY, la gama de grises se halla como una combinacin de los tres colores
con:
a) C,M,Y en iguales proporciones.
b) C,M,Y en proporciones distintas.
7. En el Modelo CMY, el azul estar representado por una combinacin de los colores C y
M. Verdadero ( ) o Falso ( ).
8. En el modelo HSI, el procesamiento de imgenes en color se realiza trabajando sobre:
Componente H solamente
Los tres componentes HSI
Componente I solamente
Componentes H y S
9. Sea la imagen RGB en 4 bits, convirtala a CMY:
0
1

1
4

10
10

11
0

6
6

7
7

10. Sea la imagen RGB en 4 bits, convirtala a binaria


0
1
10 11
15 7
3
4
12 13
15 9
11. Poner en color la siguiente imagen en niveles de gris en 4 bits: Los valores de R, G y B
debe variar entre 0 y 6.
4
8

10
14

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 80

12. Poner en color la siguiente imagen en niveles de gris en 3 bits: Los valores de R, G y B
deben variar entre 0 y 4. (1)
4
0

3
7

13. Obtener colores ms amarillos que A2C257.


14. Sea el color de fondo 63A1DD. Proponga una gama de 8 colores que podran servir de
color de texto.
14.

Proponga un mtodo alternativo al enunciado en este texto para colorear mapas usando
colores en formato RGB al estilo de HTML, sin usar el mapa de cromancia.

15.

Como se puede hacer procesamiento de imgenes directamente en RGB, por ejemplo


para aclarar, oscurecer una imagen o hallar el negativo.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 81

CAPITULO 6
Restauracin de Imgenes

Gauss, Karl Friedrich


(Brunswick, actual Alemania, 1777-Gotinga, id., 1855) Matemtico, fsico y astrnomo
alemn.
Nacido en el seno de una familia humilde, desde muy temprana edad dio muestras de una
prodigiosa capacidad para las matemticas (segn la leyenda, a los tres aos interrumpi a su
padre cuando estaba ocupado en la contabilidad de su negocio para indicarle un error de
clculo), hasta el punto de ser recomendado al duque de Brunswick por sus profesores de la
escuela primaria. El duque le proporcion asistencia financiera en sus estudios secundarios y
universitarios, que efectu en la Universidad de Gotinga entre 1795 y 1798. Su tesis doctoral
(1799) vers sobre el teorema fundamental del lgebra (que establece que toda ecuacin
algebraica de coeficientes complejos tiene soluciones igualmente complejas), que Gauss
demostr. En 1801 public una obra destinada a influir de forma decisiva en la conformacin
de la matemtica del resto del siglo, y particularmente en el mbito de la teora de nmeros,
las Disquisiciones aritmticas, entre cuyos numerosos hallazgos cabe destacar: la primera
prueba de la ley de la reciprocidad cuadrtica; una solucin algebraica al problema de cmo
determinar si un polgono regular de n lados puede ser construido de manera geomtrica (sin
resolver desde los tiempos de Euclides); un tratamiento exhaustivo de la teora de los
nmeros congruentes; y numerosos resultados con nmeros y funciones de variable compleja
(que volvera a tratar en 1831, describiendo el modo exacto de desarrollar una teora completa
sobre los mismos a partir de sus representaciones en el plano x, y) que marcaron el punto de
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 82

partida de la moderna teora de los nmeros algebraicos. Su fama como matemtico creci
considerablemente ese mismo ao, cuando fue capaz de predecir con exactitud el
comportamiento orbital del asteroide Ceres, avistado por primera vez pocos meses antes, para
lo cual emple el mtodo de los mnimos cuadrados, desarrollado por l mismo en 1794 y an
hoy da la base computacional de modernas herramientas de estimacin astronmica. En 1807
acept el puesto de profesor de astronoma en el Observatorio de Gotinga, cargo en el que
permaneci toda su vida. Dos aos ms tarde, su primera esposa, con quien haba contrado
matrimonio en 1805, falleci al dar a luz a su tercer hijo; ms tarde se cas en segundas
nupcias y tuvo tres hijos ms. En esos aos madur sus ideas sobre geometra no euclidiana,
esto es, la construccin de una geometra lgicamente coherente que prescindiera del
postulado de Euclides de las paralelas; aunque no public sus conclusiones, se adelant en
ms de treinta aos a los trabajos posteriores de Lobachewski y Bolyai. Alrededor de 1820,
ocupado en la correcta determinacin matemtica de la forma y el tamao del globo
terrqueo, desarroll numerosas herramientas para el tratamiento de los datos
observacionales, entre las cuales destaca la curva de distribucin de errores que lleva su
nombre, conocida tambin con el apelativo de distribucin normal y que constituye uno de
los pilares de la estadstica. Otros resultados asociados a su inters por la geodesia son la
invencin del heliotropo, y, en el campo de la matemtica pura, sus ideas sobre el estudio de
las caractersticas de las superficies curvas que, explicitadas en su obra Disquisitiones
generales circa superficies curvas (1828), sentaron las bases de la moderna geometra
diferencial. Tambin mereci su atencin el fenmeno del magnetismo, que culmin con la
instalacin del primer telgrafo elctrico (1833). ntimamente relacionados con sus
investigaciones sobre dicha materia fueron los principios de la teora matemtica del
potencial, que public en 1840. Otras reas de la fsica que estudi fueron la mecnica, la
acstica, la capilaridad y, muy especialmente, la ptica, disciplina sobre la que public el
tratado Investigaciones diptricas (1841), en las cuales demostr que un sistema de lentes
cualquiera es siempre reducible a una sola lente con las caractersticas adecuadas. Fue tal vez
la ltima aportacin fundamental de un cientfico cuya profundidad de anlisis, amplitud de
intereses y rigor de tratamiento le merecieron en vida el apelativo de prncipe de los
matemticos. (Diccionario de Biografas, Ocano).

Restaurar una imagen significa de alguna forma mejoramiento de imgenes, sin embargo, la
restauracin debe ser hecha en procura de la imagen original, sin considerar otros elementos
que pueden estar presentes al hablar de mejoramiento.
La imagen a ser restaurada se puede representar como afectada por el siguiente proceso de
degradacin:

Ilustracin 1. Modelo de representacin de una imagen a ser restaurada. H representa la degradacin de la


imagen por elementos lineales que afectan a todas sus partes por igual, n(x, y) el ruido que puede sufrir la
imagen en alteraciones randmicas de la composicin de la imagen, g(x, y) es la imagen a ser restaurada.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 83

La imagen g(x, y) es entonces una versin ruidosa de f(x, y) que debe ser restaurada para
llegar a una imagen cercana de la imagen original f(x, y).

6.1 Uso de Filtros espaciales


Los filtros espaciales o mascarillas usados en mejoramiento, se pueden aplicar para restaurar
imgenes. Los filtros ms usados para este propsito son:

Filtro de 2x2

(0)

1/9 1/9 1/9


1/9 1/9 1/9
1/9 1/9
Filtro de 3x3

(1)

0
1/8 0
1/8
1/8
0
1/8
Filtro pasa bajos de 5 puntos diferentes de 0

(2)

La aplicacin de los filtros anteriores es idntica a la realizada en la seccin de mejoramiento,


sin embargo, el filtro de 2x2 no posee valor central, por lo que su uso aparece oscuro. Para
aplicar el filtro de 2x2, simplemente asuma uno de los cuatro puntos como centro del filtro y
use este centro durante todo el proceso.
Para restauracin de imgenes, se puede rodear de ceros la imagen para procesar todos sus
pixeles, sin embargo, esta recomendacin puede tener efectos indeseados y depende de la
imagen a restaurar.
Ejemplo de restauracin con filtro pasa bajo de 3x3.

Ilustracin 2. Imgenes restauradas con el filtro pasa bajos.


Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 84

6.2 Filtro de mediana


Esta clase de filtros no es muy popular en procesamiento de seales unidimensionales, sin
embargo, brinda buenos resultados en imgenes.
El proceso de filtrado consiste en ordenar los valores de una vecindad definida y seleccionar
el valor de la posicin media.
Ejemplo:
Aplicando un filtro de orden 3, a la secuencia x[n] = (1,7,4,3,2,0,1).
El elemento a filtrar debe quedar al medio. El primer elemento necesita de un valor anterior
para figurar al medio, por ello se completa con un 0.
Vecindad a filtrar: (0,1,7), al ordenar se tiene: (0,1,7), y el resultado es 1.
Vecindad a filtrar: (1,7,4), al ordenar se tiene: (1,4,7), y el resultado es 4.
Vecindad a filtrar: (7,4,3), al ordenar se tiene: (3,4,7), y el resultado es 4.
Vecindad a filtrar: (4,3,2), al ordenar se tiene: (2,3,4), y el resultado es 3.
Vecindad a filtrar: (3,2,0), al ordenar se tiene: (0,2,3), y el resultado es 2.
Vecindad a filtrar: (2,0,1), al ordenar se tiene: (0,1,2), y el resultado es 1.
Vecindad a filtrar: (0,1,0), al ordenar se tiene: (0,0,1), y el resultado es 0.
La secuencia filtrada es: y[n] = (1,4,4,3,2,1,0)
Para aplicar el mismo filtro a una imagen, se lo puede hacer fila por fila o columna por
columna, del mismo modo que para una secuencia:
Sea la imagen:
1
2
6

4
7
1

3
5

El resultado de aplicar el filtro ser:


1
2
1

3
5
1

3
5

6.3 Escalamiento de Imgenes


El escalamiento es otra manera de introducir ruido a una imagen. El proceso para reconstruir
una imagen escalada se detalla a continuacin con un ejemplo:
Sea la imagen original de tamao 2x2, el proceso de reconstruccin basado en interpolacin
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 85

consiste en:
1
3

7
1

Llenado
de ceros

1
0
3
0

0
0
0
0

7
0
1
0

0
0
0
0

Interpolar
Filas

1
0
3
0

4
0
2
0

7
0
1
0

3.5
0
0.5
0

Interpolar
Columnas

1
2
3
1.5

4
3
2
1

7
4
1
0.5

3.5
2
0.5
0.25

Finalmente se debe redondear los valores para obtener la imagen en tonos de gris.
1
2
3
2

4
3
2
1

7
4
1
1

4
2
1
0

Ejemplo: Restaurar la imagen con Sx= 3 y Sy=3


1
11

13
3

Llenado con ceros

0
1
2
3
4
5

0
1
0
0
11
0
0

1
0
0
0
0
0
0

2 3
0 13
0 0
0 0
0 3
0 0
0 0

4
0
0
0
0
0
0

5
0
0
0
0
0
0

Interpolacin de filas y columnas


Se procede a calcular los pasos
1
4,3
7,6
11
7,3
3,6

Procesamiento de Imgenes

Guido Ochoa Moreno

5
6
7,1
8,3
5,5
2,7

9
7,7
6,6
5,6
3,7
1,8

13
9,6
5,3
3
2
1

8,6
6,4
4,2
2
1,3
0,6

4,3
3,2
2,1
1
0,6
0,3

Pgina 86

Finalmente se expresa la imagen en tonos de gris, redondeando los valores


1
4
8
11
7
4

5
6
7
8
6
3

9 13
8 10
6 5
6 3
4 2
2 1

9
6
4
2
1
1

4
3
2
1
1
0

Usando la Convolucin se puede obtener resultados similares al anterior. El mtodo consiste


en aplicar a la imagen rellenada de ceros la convolucin con la matriz H tantas veces sean
necesarias hasta conseguir una imagen aceptable.
El proceso se representa como:

La matriz H empleada es:

(3)

6.3.1 Escalamiento de Imgenes en general


En el caso anterior se escal la imagen con valores de Sx y Sy enteros e iguales a 2, lo cual es
el caso ms simple. Si Sx = 3 y Sy = 2 por ejemplo, se tendra una matriz luego de llenado de
ceros tal como se muestra a continuacin:
1
5

10
11

1 0

10 0

5 0

11 0

Interpolar los valores entre 1 y 10 no es cosa de hallar el promedio de dos en dos, se debe
conseguir dos valores intermedios entre 1 y 10 que reemplacen los ceros. Para esto es
necesario pensar que se debe pasar del nivel de gris 1 al 10 en tres pasos (note que el valor de
Sx = 3), y debemos calcular el tamao de cada paso, con la siguiente relacin:
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 87

paso

incremento de valor 10 1

3
escala
3

Vemos entonces que en forma general el valor del paso para la interpolacin se obtiene con:

paso

incremento de valor
S

(4)

donde S es el valor de la escala en el eje en cuestin. La imagen escalada seria:


1

10
11

6.66
7.33

3.33
3.66

1
3
5
2.5

4
5.5
7
3.5

7
8
9
4.5

10

6.66 3.33
3.5
7.33 3.66
3.66 1.83

10.5 7

11
5.5

1
3
5
3

4
6
7
4

7
8
9
5

10
11
11
6

7
7
7
4

3
4
4
2

Ejemplo
Restaurar la imagen con Sx=1.8 y Sy=1.4
1
0

10
6

Llenado con ceros

0
1
2

0
1
0
0

1 2
0 10
0 6
0 0

3
0
0
0

Interpolacin de filas y columnas


Se procede a sacar los pasos

1
0
0

6
3,3
2,35

10
6
4,28

5,5
3,3
2,35

Imagen en tonos de gris:


Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 88

1
0
0

6
3
2

10
6
4

6
3
2

6.4 Filtrado en el Dominio de la Frecuencia


El filtrado usando Fourier es la herramienta ms efectiva para restaurar una imagen,
generalmente el ruido se expresa como frecuencias altas, entonces eliminar la zona de altas
frecuencias es la solucin.

Ilustracin 3. Zonas a filtrar usando filtro en el dominio de la frecuencia.

La FFT se ha usado con xito en aplicaciones especiales en las que se ha librado de ruido a
imgenes obtenidas con lentes defectuosos. El proceso de filtrado en estos casos no es
simplemente eliminar un rango de frecuencias, sino, el de eliminar una seccin de la matriz en
el dominio de frecuencia a modo de ciruga. En este proceso se extirpa el ruido de la
imagen.
La FFT ha mostrado excelentes resultados en el tratamiento de imgenes obtenidas con
cmaras en movimiento, en este caso, se hace una compensacin en frecuencia de modo que
se elimina el defecto producido por el movimiento.
Existen trabajos que han servido de tesis de doctorado en ciencias a los que hace referencia el
libro de Gonzlez, en los cuales se han corregido fotos con problemas de desenfoque.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 89

6.5 Problemas
Indique porque se puede restaurar una imagen aplicando un filtro pasa bajo.
Como se aplica la mascarilla de 2 x 2.
3. Escale y restaure la imagen con Sx= 3 y Sy = 2.5. (2) Haga en la cuadrcula todos los
pasos.
1
3

11
9

4. Escale y restaure la imagen con Sx= 1.8 y Sy = 1.2. (2) Haga en la cuadrcula todos los
pasos.
1
5

14
13

5. Calcule las zonas a desechar si se desea filtrar una imagen de 100 x 100 usan Fourier, de
modo que se conserve el 98% de los puntos y se deseche en igual proporcin las frecuencias
ms altas y ms bajas.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 90

CAPITULO 7

Compresin de Imgenes

Morse, Samuel
(Charlestown, EE UU, 1791-Nueva York, 1872) Inventor y pintor estadounidense.
Hijo del pastor calvinista y distinguido gegrafo Jedidiah Morse. Se educ en Yale, donde no
demostr especial aptitud para el estudio, aparte de la pintura y de los cursos sobre
electricidad. Tras graduarse en 1810, se emple como oficinista en una editorial de Boston.
Ese mismo ao se embarc hacia Inglaterra para estudiar bellas artes. A su vuelta en 1815,
despus de la guerra angloamericana, se gan la vida ejerciendo como retratista. En 1832, de
regreso en Estados Unidos procedente de Europa, concibi la idea de un telgrafo elctrico
tras escuchar una conversacin sobre el invento del electroimn; a pesar de que la idea no era
totalmente nueva, l fue el primero en materializarla. Construy su primer prototipo en 1835.
En 1838 desarroll el cdigo de puntos y rayas conocido como alfabeto Morse. En 1843, el
Congreso de Estados Unidos dio el primer paso hacia la extensin de la lnea telegrfica al
aprobar la financiacin del tendido que unira Washington con Baltimore. (Diccionario de
Biografas, Ocano)

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 91

Tal como lo seala el proverbio chino una imagen vale ms que mil palabras, el espacio
necesario para guardar una imagen es mucho mayor al necesario para las mil palabras. Por
esto, se necesita de una herramienta capaz de manejar imgenes en espacios de
almacenamiento ms reducidos.
Como se vio en el captulo 2, una imagen antes de ser digitalizada posee un nmero infinito
de puntos, luego, al digitalizarse, posee tantos puntos como su resolucin lo determine. En
general los tamaos muy grandes de las imgenes dificultan su uso en comunicaciones y crea
la necesidad apremiante de un mecanismo de compresin que compense el problema del
volumen de datos.
Segn la teora de la informacin, un mensaje est constituido por Informacin y
Redundancia. La redundancia es aquello que hace posible que el mensaje sea entendido en la
forma correcta sin ambigedades por los receptores del mismo, sin embargo, la redundancia
no es necesaria para las mquinas puesto que capaces de decodificar de una forma nica los
mensajes. Basados en este principio, se puede afirmar entonces que si es posible la
compresin de datos o mensajes.

Ilustracin 1. Diagrama de compresin de imgenes usando JPEG.

Existen dos formas de compresin, una denominada compresin con prdidas y la otra sin
prdidas.
Un ejemplo de compresin con prdidas es JPEG (Join Photographic Experts Group). En esta
clase de compresin, no es posible recuperar completamente la imagen original, las prdidas
sin embargo pueden ser reducidas hasta que su efecto no sea apreciado por el ojo humano. El
esquema de compresin JPEG se simplifica en el diagrama anterior.
Se puede consultar informacin de JPEG en las siguientes direcciones:
http://www.cs.cf.ac.uk/Dave/Multimedia/node200.html,
http://www.seas.gwu.edu/~youssef/cs225/standards.html,
http://www.ece.purdue.edu/~ace/jpeg-tut/jpegtut1.html, ftp://ftp.uu.net/graphics/jpeg y otros.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 92

La imagen estndar con la que se prueban los algoritmos de compresin ha sido Lena la
misma que sirve como indicador de calidad de los mtodos de compresin.
En la ilustracin 2 muestra la imagen original y la imagen despus de haber sido sometida a
una compresin usando JPEG con una relacin de 32:1. La calidad de la imagen sigue sin
embargo razonable a pesar de que el tamao del archivo disminuy a cerca de 30 veces su
valor original.
La granularidad que se observa en la imagen comprimida corresponde a que la tcnica JPEG
primero divide la imagen en porciones de 8 x 8 pixeles y los codifica independientemente
cada uno de estos cuadros.

7.1 Compresin en Imgenes de FAX


La comunicacin de fax a fax se realiza mediante imgenes binarias. Actualmente sin
embargo, existen normas y recomendaciones que permiten la comunicacin con niveles de
gris, pero que al parecer demorar algunos aos antes de que se establezca como un estndar
de comunicaciones.
Supongamos que se desea enviar una hoja de tamao carta (8 por 11 pulgadas) va fax, por
una lnea con un ancho de banda de 4800 bits por segundo. Para enviar la imagen el fax la
digitaliza a una resolucin de 150 ppi, por lo que el tamao de la imagen a enviar es de: 150 x
150 x 8 x 11 = 1,980,000 bits.
El tiempo empleado a 4.8k baudios es de 412.5 segundos, es decir, de 8 minutos con 52.5
segundos. Este tiempo no es real, puesto que el enviar una hoja por fax toma cerca de 40
segundos como mximo ya que las mquinas de fax usan compresin de datos.
Supongamos una seccin de la imagen a transmitir como la siguiente:
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 93

0
0
0

0
0
0

0
0
0

0 0
0 0
0 1

0
0
1

1
0
1

1
1
1

0
0
1

0
0
1

0
0
1

0
0
1

0
0
1

0
0
0

0
0
0

0
0
0

0
0
0

0
0
0

0
0
1

Como la imagen es binaria, solo existirn Ceros y Unos.


El esquema de compresin que se usa en Fax se denomina Carreras de Unos y consiste en
enviar el nmero de ceros o unos seguidos en lugar de enviar los valores. Ejemplo, la tercera
lnea de la imagen anterior se codificara como 4 ceros, 9 unos, 5 ceros, etc. y se transmite
los nmeros 4, 9,5,.. En lugar de 000011111111100000
El algoritmo de este esquema de compresin es:
1.
2.
3.
4.

Los pixeles blancos se consideran como CEROS, y los negros (texto) como UNOS.
La carrera inicial del cdigo es siempre de Ceros.
La codificacin es en carreras alternadas de ceros, unos, ceros, etc.
Para la transmisin binaria se usa un mismo nmero de bits para codificar todas las
carreras.
5. Se codifica lnea por lnea desde la cabecera hasta el fin de la pgina.
6. Existe una marca de inicio de transmisin, fin de lnea, y fin de transmisin. Usualmente
la marca de fin de lnea est compuesta por todos los bits en UNO.
Basados en este algoritmo, codifiquemos la siguiente lnea compuesta por: 20 unos, 3 ceros,
10 unos, y 20 ceros, usando palabras de 4 bits.
Con 4 bits se puede codificar carreras de hasta 14 ceros o unos, porque la palabra 1111 sirve
como fin de lnea. La carrera de 20 ceros puede ser enviada como 14 ceros, 0 unos y
finalmente los 6 ceros restantes. Adems se debe considerar que la carrera inicial es siempre
de Ceros, de modo que la codificacin sera:
0000
0 c.

20 unos
1110 0000
14 u.
0 c.

3 ceros 10 unos
0110 0011
1010
6 u.

20 ceros
1110 0000 0110
14 c. 0 c.
6 c.

Fin de Lnea
1111

En el ejemplo anterior, originalmente se deben transmitir 20 + 3 + 10 + 20 = 53 bits, pero una


vez ya codificada, slo se necesitan transmitir 10 palabras de 4 bits, es decir, 40 bits. La
relacin del tamao original respecto del codificado se denomina Relacin de Compresin
y se expresa como:
Cr

Tamao original
n
1
Tamao Codificado n2

(1)

En este caso, Cr = 1.325, lo que significa que ha habido un ahorro del 32.5% del tiempo de
comunicacin o del espacio para almacenar la imagen.
La redundancia (Rd) se calcula como:

Rd 1

1
Cr

Procesamiento de Imgenes

(2)
Guido Ochoa Moreno

Pgina 94

Que para el caso analizado es de 0.2453.


Si una lnea est compuesta de solo ceros, la codificacin de la lnea completa sera slo el
indicador de fin de lnea, sin importar el nmero de ceros que esta contiene.
Ejemplo:
Con 5 bits codificar:
100c
7u 20c 40u 10c
8c 16u 24c 8u
Para realizar el ejercicio debemos tomar en cuenta que fin de lnea es: 11111; y que toda lnea
empieza con carrera de ceros

11111
00000

00111 10100 11110 00000 01010 11111


7

20

40

01000

10000

11000

01000

16

24

fin de lnea

11111
fin de lnea

7.2 Compresin sin prdidas


La compresin es el mecanismo mediante el cual se codifica un mensaje o un dato de modo
que la redundancia es minimizada. La compresin ideal es aquella en el que el mecanismo de
codificacin elimina toda la redundancia.

7.2.1 Codificacin de Huffman


Huffman propone una codificacin de longitud variable que permite codificar el smbolo ms
frecuente en un cdigo ms simple. La idea original fue de Morse, y fue puesta en prctica por
primera vez con fines de transmisin de datos va telgrafo. Morse determin la probabilidad
de ocurrencia de las letras en un mensaje escrito mediante el conteo letra a letra de las tres
obras mayores de Shakespeare, y propuso el cdigo que lleva su nombre para realizar la
transmisin. El resultado fue tan efectivo que este cdigo se venido utilizando desde el siglo
XIX sin que nadie haya sugerido un ms eficiente. A continuacin se muestra la codificacin
Morse para letras, nmeros y algunos signos de puntuacin:
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 95

Letra
A
B
C
D
E
F
G
H
I
J
K
L
M
Letra

Ch

Morse

Letra

.-...
-.-.
-..
.
..-.
--.
....
..
.---..-..
--

Morse
.-..--..--.---..-..
--.----.
..--

N
O
P
Q
R
S
T
U
V
W
X
Y
Z

Morse
-.
--.--.
--..-.
...
......--..-

Digito
0
1
2
3
4
5
6
7
8
9

Morse
----.---..--...-.........
-....
--...
---..
----.

-.---..

Signos de Puntuacin
Punto final
Coma
Dos puntos
Signo de Interrogacin (?)
Comilla simple
Guin
Lnea de quebrado o fraccin
Corchetes o parntesis
Doble comilla

Morse
.-.-.--..----...
..--..
.----.
-....-..-.
-.--..-..-.

Para indicar que hubo un error y que se ignore la ltima palabra, se usa el cdigo........ (Ocho puntos).

Consulte en http://morsecode.scphillips.com/jtranslator.html para traducir texto a morse y


tambin para escucharlo.
Las condiciones bsicas que debe cumplir una codificacin son:
El mensaje debe ser nicamente codificable, y
El mensaje codificado debe ser nicamente decodificable.
En otras palabras estas condiciones establecen que existe un cdigo nico por cada smbolo y
que la decodificacin no altera el mensaje.
El algoritmo de codificacin de Huffman se basa en que se dispone de un nmero finito de
smbolos a codificar y se conoce de antemano su probabilidad de ocurrencia en el mensaje. El
algoritmo es:
1.
2.
3.
4.

Ordenar los smbolos conforme su probabilidad de mayor a menor.


Agrupar los dos smbolos de menos probabilidad en otro compuesto y reordenar.
Repetir el paso anterior hasta obtener slo dos smbolos.
Asignar un 0 y 1 como cdigo de los dos smbolos resultantes, y propagar el cdigo de los
smbolos compuestos aadiendo un 0 y 1 en cada descomposicin hasta que no existan
smbolos compuestos.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 96

A modo de ejemplo se presenta a continuacin una tabla donde se hallan los smbolos
codificados conforme el postulado de Huffman. rn es el smbolo, P (rn) es la probabilidad del
smbolo en el mensaje, cdigo es la representacin del smbolo de acuerdo a Huffman, y
Longitud es el tamao en bits del cdigo.
rn
r0
r1
r2
r3
r4
r5
r6
r7

P(rn)
30
25
15
10
8
7
3
2

Cdigo
1
01
001
0001
00001
000001
0000001
0000000

Longitud
1
2
3
4
5
6
7
7

Si se codifican 100 smbolos con el cdigo de la tabla anterior, ser posible codificar el 30%
de los mismos usando slo un bit, el 25% con dos, el 15% con tres, el 10% con cuatro y as
sucesivamente. Este cdigo entonces hace posible codificar los 100 smbolos usando (30*1 +
25*2 + 15*3 + 10*4 + 8*5 + 7*6 + 3*7 + 2*7) = 282 bits.
Si en lugar de la codificacin de Huffman se usa la codificacin regular binaria, se
necesitaran 3 bits por cada smbolo, lo que da un total de 300 bits, es decir que se tiene un
ahorro de (300 - 282) = 18 bits, lo que significa un 6.4 %. El valor de Cr es de 300 / 282 =
1.064

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 97

7.3 Problemas
1. Calcule el tiempo necesario para enviar una hoja tamao carta por fax, a una velocidad de
1200 bits por segundo y con una resolucin de 150 ppi.
2. Para enviar varias lneas en blanco en un fax, simplemente de envan las marcas de fin de
lnea. Considerando esto, calcule el tiempo requerido para enviar una pgina en blanco por
fax (Tamao 8 x 11 pulgadas), usando palabras de 8 bits y 150 ppi.
3. Codifique en carreras de unos las siguientes lneas de datos (7 bits). Hgalo de la forma
ms eficiente posible. Calcule la relacin de comprensin: (2)
200c
10u40c100u30c
200c
200c120u10c3u

4.

Halle la codificacin de Huffman y la relacin de compresin suponiendo que se


transmiten 100 smbolos en total (2)
rn
r1
r2
r3
r4
r5
r6
r7
r8

P(rn)
21
2
9
18
21
13
13
3

5. Codifique la imagen en carreras de unos, con 7 bits y en la forma ms optimizada.


1c200u100c
400c
120u89c

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 98

CAPITULO 8
Reconocimiento de Imgenes

Descartes, Ren
(La Haye, Francia, 1596-Estocolmo, Suecia, 1650) Filsofo y matemtico francs.
Se educ en el colegio jesuita de La Flche (1604-1612), donde goz de un cierto trato de
favor en atencin a su delicada salud. Obtuvo el ttulo de bachiller y de licenciado en derecho
por la facultad de Poitiers (1616), y a los veintids aos parti hacia los Pases Bajos, donde
sirvi como soldado en el ejrcito de Mauricio de Nassau. En 1619 se enrol en las filas del
duque de Baviera; el 10 de noviembre, en el curso de tres sueos sucesivos, experiment la
famosa revelacin que lo condujo a la elaboracin de su mtodo. Tras renunciar a la vida
militar, viaj por Alemania y los Pases Bajos y regres a Francia en 1622, para vender sus
posesiones y asegurarse as una vida independiente; pas una temporada en Italia (1623-1625)
y se afinc luego en Pars, donde se relacion con la mayora de cientficos de la poca. En
1628 decidi instalarse en los Pases Bajos lugar que consider ms favorable para cumplir
los objetivos filosficos y cientficos que se haba fijado, y residi all hasta 1649. Los cinco
primeros aos los dedic principalmente a elaborar su propio sistema del mundo y su
concepcin del hombre y del cuerpo humano, que estaba a punto de completar en 1633
cuando, al tener noticia de la condena de Galileo, renunci a la publicacin de su obra, que
tendra lugar pstumamente. En 1637 apareci su famoso Discurso del mtodo, presentado
como prlogo a tres ensayos cientficos. Descartes propona una duda metdica, que
sometiese a juicio todos los conocimientos de la poca, aunque, a diferencia de los escpticos,
la suya era una duda orientada a la bsqueda de principios ltimos sobre los cuales cimentar
slidamente el saber. Este principio lo hall en la existencia de la propia conciencia que duda,
en su famosa formulacin pienso, luego existo. Sobre la base de esta primera evidencia,
pudo desandar en parte el camino de su escepticismo, hallando en Dios el garante ltimo de la
verdad de las evidencias de la razn, que se manifiestan como ideas claras y distintas. El
mtodo cartesiano, que propuso para todas las ciencias y disciplinas, consiste en descomponer
los problemas complejos en partes progresivamente ms sencillas hasta hallar sus elementos
bsicos, las ideas simples, que se presentan a la razn de un modo evidente, y proceder a
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 99

partir de ellas, por sntesis, a reconstruir todo el complejo, exigiendo a cada nueva relacin
establecida entre ideas simples la misma evidencia de stas. Los ensayos cientficos que
seguan, ofrecan un compendio de sus teoras fsicas, entre las que destaca su formulacin de
la ley de inercia y una especificacin de su mtodo para las matemticas. Los fundamentos de
su fsica mecanicista, que haca de la extensin la principal propiedad de los cuerpos
materiales, los situ en la metafsica que expuso en 1641, donde enunci as mismo su
demostracin de la existencia y la perfeccin de Dios y de la inmortalidad del alma. El
mecanicismo radical de sus teoras fsicas, sin embargo, determin que fuesen superadas ms
adelante. Pronto su filosofa empez a ser conocida y comenz a hacerse famoso, lo cual le
acarre amenazas de persecucin religiosa por parte de algunas autoridades acadmicas y
eclesisticas, tanto en los Pases Bajos como en Francia. En 1649 acept la invitacin de la
reina Cristina de Suecia y se desplaz a Estocolmo, donde muri cinco meses despus de su
llegada a consecuencia de una neumona. Descartes es considerado como el iniciador de la
filosofa racionalista moderna por su planteamiento y resolucin del problema de hallar un
fundamento del conocimiento que garantice la certeza de ste, y como el filsofo que supone
el punto de ruptura definitivo con la escolstica. (Diccionario de Biografas, Ocano).

8.1 Tecnologas Relacionadas


Las tecnologas existentes han atacado el problema del reconocimiento de texto desde la
forma ms sencilla que es reconocer carcter por carcter o smbolo por smbolo. Una vez
reconocido el smbolo se pueden armar palabras, luego sentencias y finalmente reconstruir el
texto a ser reconocido.
Existen muchas soluciones para hacer reconocimiento de caracteres, la gran mayora de ellas
catalogadas como reconocedores pticos de caracteres (OCR), estos usualmente son
comercializados por productores de escner o casas especializadas en reconocimiento de
texto. No obstante la gran cantidad de software existente como solucin al problema del
reconocimiento, estas trabajan sobre caracteres impresos, y no han aparecido an soluciones
comerciales para el reconocimiento de caracteres manuscritos.
Como introduccin al tema reconocimiento se explica a continuacin lo que es un
reconocedor de caracteres impresos, sus tcnicas empleadas y las nuevas tendencias en lo que
a reconocimiento de smbolos en general se refiere.

8.2 Reconocimiento de Caracteres


Una persona puede reconocer letras, nmeros y smbolos de una manera muy sencilla. A pesar
de que las letras pueden estar dibujadas en superficies curvas, con diferentes colores y
tamaos, con partes oscuras y hasta semidestruidas o incompletas, una persona no tiene mayor
dificultad para reconocer no solo las letras y smbolos sino el mensaje presente. La facultad de
interpretar un escrito se basa en el conocimiento del alfabeto y en un nivel ms avanzado del
lenguaje utilizado. Todo este proceso de reconocimiento lo realiza nuestro cerebro de una
forma que aun permanece en el misterio. Una computadora no puede reconocer un smbolo
sin que antes haya sido entrenada para hacerlo y solo podr reconocerlo en la presentacin y
modo en que fue entrenada para hacerlo, dificultndose este proceso si el smbolo se halla en
otro tamao, tipo de letra, orientacin, o alterado en alguna de sus propiedades en las cuales
se basa el algoritmo de reconocimiento.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 100

Una computadora para reconocer una porcin de texto debe realizar un proceso complicado
cuya complicacin es generalmente proporcional a la efectividad su trabajo. Este proceso
empieza con el procesamiento de la imagen de texto que es la entrada del OCR. La primera
tarea por hacer es confirmar la orientacin del texto en la imagen, debiendo realizarse las
correcciones necesarias para que el algoritmo de reconocimiento no sea muy complicado y
parta siempre de una orientacin fija. Luego se debe segmentar la imagen primero en lneas,
luego en palabras y finalmente en letras con lo que se obtienen imgenes de los smbolos en
forma individual (la imagen de cada smbolo se denomina glyph). El glyph es entonces
aplicado al algoritmo de reconocimiento. Para cada glyph reconocido el algoritmo asocia una
probabilidad de certeza u otra usualmente diferente de cero asociadas al reconocimiento
errneo del smbolo. Finalmente los smbolos reconocidos se presentan a la salida del
proceso en el mismo orden en que fueron ingresados de modo que se pueda entonces armar
las palabras, las oraciones y recomponer el texto. Asociado a este proceso est el resultado
acumulado del error cometido que es una medida de lo confiable de la tarea realizada.
Para completar el proceso se requerir de un corrector ortogrfico que elimine desde el punto
de vista de palabras los errores cometidos al interpretar cada glyph. El sistema debera estar
en la capacidad de realizar las correcciones de glyphs interpretados como nmeros en lugar de
letras como usualmente sucede con la letra B y el nmero 8 de modo que se refine el
resultado obtenido.
Existe otro problema que resolver, como es la mezcla de texto y grficos. Se debe reconocer y
delimitar la zona que contiene texto y separarla de la de los grficos. El proceso de armado de
salida debera componer nuevamente las dos zonas en el orden correcto.
Otro gran problema es poder reconocer una zona de texto manuscrito el mismo que puede
venir con diferentes tamaos y estilos; adems, se debe tomar en cuenta que existen
diferencias entre los smbolos que representan una misma letra a pesar de ser escritas por la
misma persona. Este ltimo caso requiere hasta hoy en da de una persona para realizar el
reconocimiento de caracteres. En este trabajo se presentan algunas alternativas de solucin del
problema de reconocer caracteres manuscritos.

8.2.1 Un OCR en imgenes simples y perfectas


Si se logra una imagen con caracteres dibujados en ella, sin que esta haya sido ingresada a
travs de un escner de modo que se halle libre de ruido, tendremos imgenes perfectas que
pueden ser aplicadas al proceso de reconocimiento.
Estas imgenes simples y perfectas nos facilitarn la obtencin de los glyphs de modo que
podemos entonces contar con glyphs perfectos tal como se muestra el la figura 1.1.

Figura 1: Ghyphs de imgenes perfectas de los smbolos: A, B, S, 8 y 5, graficados en 6 x 9 pixeles.

En estos glyphs, las imgenes contienen un smbolo correctamente alineado de modo que una
simple sobre posicin de una mascarilla del mismo tamao del smbolo almacenada en una
base de datos nos permitir identificarlo cuando la sobre posicin sea perfecta, es decir, que
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 101

todos los pixeles del glyph coinciden con la mascarilla.


La forma ms sencilla del algoritmo que hace este proceso se logra con imgenes binarias,
cada pixel en negro es un 1 y los en blanco son 0 de modo que un simple AND o un XOR
(para el caso de reconocimiento de tanto del glyph en positivo como en negativo) con las
mascarillas almacenas en la base de datos identifica al smbolo buscado.

8.2.2 OCR en imgenes digitalizadas


Cuando se digitaliza una imagen a travs de un escner, el proceso se complica an ms. La
mayora de los escner producen imgenes en tonos de gris o en color de modo que el primer
paso sera convertir a binaria la imagen, lo que lleva con sigo el problema de determinar bien
el nivel de referencia (thresholding). Como la resolucin del escner es finita, se tendrn
algunos pixeles que aparecern o sern omitidos dependiendo de su posicin dentro de la
pgina de manera que existiran mltiples representacin de cada smbolo.
Otro problema es la orientacin de la imagen, esta pude ser casi horizontal pero generalmente
existir una inclinacin del texto, lo cual significa una complicacin puesto que casi todos los
algoritmos de reconocimiento asumen que la imagen del texto a reconocer es horizontal.
El ms difcil de los problemas es armar los glyphs con uno y solo un smbolo. Este problema
es crtico cuando los caracteres se topan con los vecinos y aparecen como uno solo, sin que
exista un modo de separarlos debido a que cada uno posee una longitud variable; por ejemplo,
los caracteres ij no ocupan el mismo espacio que la letra m. En la grfica a continuacin se
muestra este problema.

Figura 2: El problema de la separacin de glyphs

Un algoritmo bastante efectivo para separar los smbolos es explicado en [Algoritms for
Image Processing and Computer Vision, J. R. Parker] [25] en donde se usa el concepto Costo
de corte (Break Cost) introducido por Tsujimoto en 1991, para determinar los puntos donde
se deben separar los smbolos para armar los glyphs.
Adicionalmente, el uso de un rbol de conexiones asociado en forma simultnea al
reconocimiento de cada smbolo, es muy til para eliminar posibles errores de
reconocimiento. Este mtodo es conocido como trellisa en comunicacin digital, y consiste en
usar una memoria de bits para decodificar smbolos, en el caso del reconocedor de caracteres
la memoria se empleara para guardar smbolos y decodificar palabras.

8.2.3 Reconocedor estadstico


Se refiere al algoritmo utilizado para el reconocedor. A diferencia de la matriz del patrn a
reconocer usado anteriormente, este mtodo usa caractersticas de la imagen (glyph) mediante
las cuales se puede reconocer el smbolo.
Una de las caractersticas ms utilizadas es la circularidad C, esta caracterstica se halla
calculando el permetro p del smbolo y dividindolo para su rea, puesto que para un
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 102

circulo p = 2r y que a = r2, la razn p2/a=4, de modo que la expresin de la ecuacin


(2.1) ser uno o cercano a la unidad para el caso de smbolos circulares.
C = p2/ (4a)

(1)

Otro parmetro usado es la Rectangularidad denotado por R, que es simplemente la relacin


del rea para la base del glyph. Valores grandes de R denotan formas rectangulares ms
grandes, una l por ejemplo poseer un valor pequeo de R (el tamao del glyph es
considerado constante para todos los smbolos).
Existen muchos otros parmetros entre los cuales destaca lo que Gonzlez (1992) define como
la firma, que es el resultado de graficar la distancia d desde el centro hacia el borde del
smbolo en coordenadas polares. Si existen varios valores de d para un mismo se toma
el mayor valor de d.

Figura 3: Firma para un crculo perfecto y para la letra B

8.3 OCR sobre imgenes de fax o caracteres impresos


Para imgenes de fax se deben considerar algunas distorsiones que sufre la imagen a ser
reconocida. La primera es la distorsin por inclinacin causada por la alta probabilidad de
insertar papel en un fax con una orientacin ligeramente diferente de 0 grados. Otra distorsin
muy comn es el ruido de las lneas telefnicas por donde viaja la seal enviada por el fax lo
que produce la prdida o la duplicacin de lneas de la imagen.
Para tratar este tipo de imgenes se hace casi imprescindible un mecanismo de corregir la
orientacin de las lneas de texto. En el libro de J. R. Parker [25] se presenta el algoritmo de
Baird publicado en 1987, mediante el cual se puede corregir la inclinacin del texto.

8.3.1 Uso de detectores de bordes


Otro mtodo para el reconocimiento de caracteres es aplicar un detector de bordes al glyph en
cuestin. El resultado puede convertirse a una imagen vectorizada si se pone como color del
fondo de la imagen todo aquello que no es contorno del glyph.
Trabajando con la imagen vectorizada se puede cuantificar el histograma angular. Este se
define como la suma de las longitudes de los vectores presentes en la imagen para un ngulo
determinado. Para el reconocimiento de caracteres se usa un histograma aproximado, en
donde se ha tomado valores a mltiplos de 22.5 grados, lo que de acuerdo a Freeman (1961) y
Parker (1993) es suficiente para reconocer el smbolo contenido en el glyph. La figura a
continuacin muestra varios histogramas de las letras D,C y B.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 103

8.4 Reconocimiento de Smbolos y caracteres manuscritos


El mayor de los problemas en que se incurre para la clasificacin de caracteres manuscritos es
su inconsistencia. Una persona no puede escribir un carcter dos veces exactamente de la
misma forma y puesto que los mtodos de reconocimiento, en especial aquellos basados en
mscaras se fundamentan en la consistencia de los patrones a reconocer. Lo que se necesita
entonces para el reconocimiento de caracteres manuscritos es un mtodo basado en
estructuras, formas, u otros aspectos independientes de la posicin de los pixeles, los mismos
que pueden variar de un glyph a otro.
El desempeo de un mtodo puede calcularse mediante lo que se conoce como matriz de
confusin, la misma que muestra a modo de tabla los aciertos y errores cometidos al aplicar el
mtodo. La tabla 1 muestra una matriz de confusin de un programa que intenta reconocer las
cuatro letras A, B, C y D:

Tabla 1: Matriz de confusin. Resultado de la prueba del reconocimiento de las letras A, B, C y D.

A
B
C
D

A
96
0
0
0

B
2
98
0
1

C
0
0
100
0

D
2
2
0
99

La matriz de confusin mostrada se realiz en base a 100 pruebas de cada tipo, note que cada
fila suma 100, esto es verdad solamente si no existen rechazos. En la ltima columna se puede
observar que los glyphs clasificados como D 99 fueron correctos y 4 equivocados. Esta
matriz es muy til para examinar el comportamiento de un algoritmo.
A continuacin se evalan algunas formas propuestas para el reconocimiento de caracteres
manuscritos.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 104

8.4.1 Mtodo de silueta


Shridhar y Kimura en 1987 y 1991 proponen caractersticas topolgicas que pueden usarse
para clasificar nmeros manuscritos. As, el nmero 8 puede ser descrito como poseedor de
una silueta parecida tanto izquierda como derecha, y con un ancho mnimo localizado al
centro. Estas descripciones permiten reconocer un carcter y la idea es poder manejar tantas
descripciones o descriptores como sean necesarios de modo que el reconocimiento sea ms
acertado.
El descriptor de silueta izquierda del glyph (LP) se calcula contando el nmero de pixeles del
fondo (no del carcter) desde el borde izquierdo hasta el primer pixel del carcter, esto se
realiza fila por fila. Esta versin de muestra del carcter en cuestin es luego escalada hasta
un tamao estndar. La silueta derecha (RP) se obtiene de forma similar empezando a contar
desde el borde derecho.
Basados en las siluetas se calculan otros descriptores como son: Lmin, que es la posicin del
valor mnimo de la silueta izquierda; la localizacin del mximo se denomina Lmax. Las
posiciones del mximo y mnimo de la silueta derecha que se denominan Rmax y Rmin.

Figura 5: Siluetas o perfiles izquierdo y derecho del glyph del nmero 9.

Con los descriptores encontrados se definen algunas medidas tiles como son:
W(k) = ancho a la posicin k = RP(k) - LP(k).
Wmax, valor mximo del ancho del carcter.
R, la razn del alto para el mximo ancho del carcter.
LDIF(k) = LP(k) - LP(k-1).
RDIF(k) = RP(k) - RP(k-1).

(2)

Los valores LDIF y RDIF permiten establecer conceptos de la variabilidad de la forma del
carcter en estudio, grandes valores de LDIF implican un gran cambio en la silueta en ese
punto y es un criterio vlido para apoyar la decisin de clasificacin. Un ejemplo de siluetas
izquierda y derecha se muestra en la figura 2.5
Para la clasificacin de dgitos los autores antes mencionados definieron 48 caractersticas, y
con ellas alcanzaron un resultado promedio de 94.2% de reconocimientos acertados. Los
resultados se reproducen a continuacin para referencia.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 105

Tabla 2: Resultados del mtodo de silueta.

% Correcto
% Error
% Rechazo

0
94
1
5

1
95
4
1

2
96
1
3

3
4
100 95
0
5
0
0

5
6
100 84
0 10
0
6

7
94
5
1

8
90
4
6

9
94
6
0

8.4.2 Mtodo de deficiencias de convexidad


Una imagen digital usualmente consiste de pixeles negros sobre un fondo blanco. Las
caractersticas ms notables para el reconocimiento son el nmero y posicin de huecos, por
ejemplo el nmero 8 posee dos huecos ubicados el uno en la parte superior y otro en la parte
inferior. El cero posee uno solo hueco ubicado al centro. Otras caractersticas son las
concavidades y la direccin de abertura. El algoritmo de identificacin y localizacin de estas
caractersticas debe ser inmune al ruido de digitalizacin de modo que no se detecten
caractersticas inexistentes. La figura a continuacin muestra las caractersticas usadas en el
mtodo.

Figura 6: Localizacin de las deficiencias de convexidad. Cdigos para las direcciones; prueba para
hallar la direccin de la abertura; huecos del 6, uno de los huecos hallados no es vlido.

Las caractersticas usadas por este mtodo son entonces: la direccin de la abertura, el
tamao, la localizacin y la forma. Las caractersticas de localizacin se detectan de una
manera aproximada solo indicando la ubicacin de la zona de pixeles negros ms poblada. El
tamao se define como pequeo si existe un 10% o menos de pixeles negros. La tabla 3
muestra una descripcin detallada de los descriptores usados.
Tabla 3: Descriptores para la clasificacin por el mtodo de deficiencias de convexidad.

Dgito
0
1
2
3
4
5
6
7

Direccin de abertura
0
Ninguna
2
4
2
4
3
4
2
4
0
2

Procesamiento de Imgenes

Tamao
medio
medio
medio
grande
pequeo
medio
medio
medio
medio
medio
medio

Guido Ochoa Moreno

Localizacin
centro
izquierda arriba
derecha abajo
izquierda
derecha
arriba
arriba derecha
abajo izquierda
arriba
abajo
izquierda

Forma
convexo
no convexo
Pgina 106

0
0
2
4
0
4

medio
medio
medio
pequeo
pequeo
medio

arriba
abajo
izquierda
derecha
no-centro, arriba
abajo

Este mtodo fue presentado por Holt (1987) y Zhang (1984) y con el se obtuvieron resultados
del 94% de reconocimiento, tal como se detallan en la tabla a continuacin.
Tabla 4: Tasa de reconocimiento.

0
99%

1
94%

2
98%

3
96%

4
94%

5
90%

6
90%

7
93%

8
95%

9
92%

8.4.3 Mascarilla de vectores


El mtodo de mascarilla ha sido el ms utilizado y consiste en el registro de las posibles
formas de los glyphs de cada tipo de carcter. La imagen del dgito desconocido en forma y
escala apropiada es aplicada a la mascarilla para realizar el proceso de reconocimiento. En
caso de un rechazo, el dgito es identificado por una persona y de ser pertinente se aade este
al conjunto de mascarillas del sistema durante el proceso de aprendizaje del sistema. Una vez
terminada la fase de aprendizaje el sistema funciona adecuadamente sobre todo en caracteres
impresos; pero, con caracteres manuscritos su desempeo es muy bajo.
Si se representan las mascarillas de los dgitos en forma vectorial tal como ocurre en sistema
tipogrfico donde los fonts son guardados en forma de vectores, se permite un fcil ajuste a
los problemas de escalamiento y rotacin.

Figura 7: Vectores desde una imagen convertida en esqueleto.

Para el reconocimiento se usan vectores que forman el esqueleto del dgito, esto permite una
buena abstraccin de la forma y tambin lo hace independiente del grosor de la lnea. Adems,
la plantilla posee una nica dimensin para todos los caracteres de modo que el proceso de
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 107

reconocimiento es general para todos. La plantilla usada por J. R. Parker (1997) es de 10 por
10, de modo que sus coordenadas poseen valores entre 0 y 9 inclusive.
Este mtodo consiste entonces en transformar una imagen desde su forma original de matriz
de pixeles (raster) a una plantilla vectorizada, comparar esta con las plantillas tipo y realizar el
reconocimiento seleccionando el carcter que mejor se ajusta. La figura 2.7 muestra la
vectorizacin del nmero 6 luego de realizado el proceso para hallar su esqueleto.
Este mtodo ha sido aplicado con desempeos relativamente buenos tanto al reconocimiento
de caracteres manuscritos como al de notas musicales. La tasa promedio de reconocimiento de
este mtodo se halla en 94.3% y sus resultados se detallan en la tabla a continuacin:
Tabla 5: Resultados del mtodo de mascarilla de vectores.

Tasa de acierto
Mascarillas por
dgito

0
1
2
3
4
5
6
7
8
9
99% 94% 98% 96% 94% 92% 90% 93% 95% 92%
1
1
3
1
5
3
2
4
4
4

8.5 Redes Neuronales

Las redes neuronales han sido ampliamente usadas para el reconocimiento y clasificacin de
patrones, en la actualidad muchos paquetes comerciales basan su poder de reconocimiento en
redes neuronales tanto para el reconocimiento del carcter impreso en s, como para reconocer
el tipo de letra o font en el que se hallan impresos tales caracteres.
A continuacin se presentan a modo de introduccin varios trabajos basados en redes
neuronales para el reconocimiento de caracteres.

8.5.1 Redes tipo Retropropagacin (Backpropagation) para el


reconocimiento de dgitos
La red utilizada para este propsito se presenta en la figura 2.8. Esta es una tpica red de tres
capas compuesta de 48 nodos o elementos de proceso (denominados tambin unidades) en la
capa de entrada, un nodo para cada pixel de una imagen de 8 filas por 6 columnas. En la capa
intermedia denominada tambin oculta posee 96 nodos, y finalmente con 10 nodos en la capa
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 108

de salida (uno por cada dgito).

Figura 8: Esquema abreviado de la red retropropagacin para el reconocimiento de dgitos.

Como primer paso del reconocimiento, las imgenes de los dgitos son escaladas a tamaos de
glyph de 8 x 6, para luego ser aplicado a la red glyph por glyph.
Los resultados alcanzados con esta red se resumen en la tabla 6. Un elemento interesante en el
trabajo presentado por Freeman (1991) fue que el desempeo de la red disminua
considerablemente al someterla a un conjunto de datos diferente del usado para su
entrenamiento. Los resultados para los dos casos fueron:
Tabla 6: Reconocimiento de dgitos usando una red neuronal tipo retropropagacin.

Certeza (%)

0
99

1
93

2
99

3
95

4
100

5
95

6
99

7
100

8
95

9
74

Tabla 7. Reconocimiento de dgitos usando una red neuronal tipo retropropagacin mejores resultados.

Certeza (%)

0
100

1
99

2
100

3
94

4
99

5
99

6
94

7
98

8
99

9
98

8.6 Uso de mltiples mtodos


Con la combinacin de varios de los mtodos expuestos aqu se puede hacer un sistema de
reconocimiento ms robusto, que utilice las fortalezas de cada uno de los algoritmos
individuales. Otra forma de combinacin sera mediante la aplicacin de varios mtodos al
mismo glyph y escoger de entre los resultados el ms probable (sistema de votacin).
Un clasificador produce tres tipos de salidas: La primera y tal vez la ms simple es la
identificacin de un patrn como un determinado carcter (para un clasificador de dgitos esto
equivale a responder es un tres) Xu (1992) tipo 1. Otro tipo de salida es un ranking de las
posibles respuestas en funcin de su similitud, presentando por ejemplo tres posibles smbolos
con un orden de preferencia de primero, segundo y tercero (no se trata de probabilidades), este
se denomina tipo 2. El tipo 3 es similar al tipo 2 pero en el se muestra una probabilidad
asociada al orden de preferencia de modo que esta aparece cuantificada.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 109

Cualquier sistema que permita realizar un esquema de juntura de mltiples clasificadores debe
cumplir con las siguientes premisas:
La respuesta del clasificador mltiple debe ser el mejor resultado dado por los
clasificadores en forma individual, de modo que su resultado sea representativo de los
resultados individuales.
Los clasificadores en el sistema pueden producir resultados diferentes, estos deben ser
conjugados en una sola respuesta coherente.
El clasificador mltiple debe presentar mejores resultados que los clasificadores en forma
individual o de lo contrario, no tiene razn de ser.
La implementacin de estas premisas se logra mediante la utilizacin de conceptos tales como
los probabilsticos, los de votacin o la combinacin de ambos.

8.7 Tcnicas para el manejo de las invarianzas


Para que reconocimiento de imgenes sea posible es necesario contar con una herramienta o
un algoritmo que permita eliminar las variaciones de la imagen frente a cambios menores
como son la posicin, rotacin y el tamao de la imagen. Las tcnicas que hacen posible
aplicar el mismo algoritmo de reconocimiento sin importar por ejemplo el tamao de la
imagen se denominan tcnicas de invarianzas. Las ms conocidas y utilizadas son las
siguientes:

8.7.1 Invarianza al desplazamiento


Consiste en que las caractersticas de la imagen no cambian si esta se desplaza dentro de la
regin de anlisis. Una tcnica de reconocimiento basa en la comparacin de pixeles no tiene
la menor posibilidad de xito frente al problema del desplazamiento, puesto que al cambiar la
posicin de un pixel, cambiara la imagen.

La solucin al problema del desplazamiento nos el mdulo de la transformada de fourier. La


transformada de fourier de una imagen desplazada posee un desvo en fase, puesto que son
valores complejos, el desvo en fase es simplemente una rotacin del mdulo una ngulo
determinado. Si se obtiene el mdulo, se elimina el concepto de fase y por ende los valores
son iguales independientemente del valor de desfase (valor de desplazamiento).
El proceso de reconocimiento debe basarse entonces en el procesamiento de los valores del
mdulo de la FFT en lugar del proceso de los pixeles.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 110

F k , l F k k 0 , l l0

(3)

El mdulo de la FFT de las imgenes a, b y c son iguales. El |FFT| de la imagen d es diferente


porque el desplazamiento sobrepasa los lmites de la regin de anlisis.

8.7.2 Invarianza a la rotacin


Para combatir la rotacin es necesario un proceso complicado basado en el clculo de la FFT
de f(x,y) expresada en coordenadas polares. Este es un mtodo cuyo proceso matemtico
escapa a los lmites de este texto.
Una alternativa para atacar este problema es la firma, un mtodo propuesto por Gonzlez
Rafael C. & Woods Richard E., en 1992, el cual consiste en graficar el contorno de la imagen
con respecto a su centro en coordenadas polares.

8.7.3 Invarianza a la rotacin y la escala


La firma es el mtodo que permite atacar los problemas de rotacin y de cambio de tamao de
la imagen.
El proceso para la obtencin de la firma es el siguiente:
1. Se ubica el centro de la imagen.
2. Se determina el borde de la imagen con un detector de bordes o un filtro pasa altos.
3. Se hallan los puntos a graficar cada x nmero de grados, hasta cubrir toda la
circunferencia.
Ejemplo:

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 111

La firma se traza normalizada respecto de la mxima elongacin del radio, por ello no importa
el tamao de la imagen mientras conserve la forma.
Si se produce una rotacin sobre el centro de la imagen, la firma ser de la misma forma pero
desplazada en el eje del ngulo. Este desplazamiento se puede combatir con el mdulo de la
FFT y con ello se obtendra una forma de combatir la variabilidad por rotacin y escala al
mismo tiempo.

8.8 Problemas
1. Obtenga la silueta izquierda de la imagen a continuacin:

2. Obtenga la firma (un punto cada 45 grados), de un cuadrado, un rectngulo y de un


tringulo. Cual sera el criterio principal para realizar el reconocimiento.
33 Qu es un Glyph?
4. Por qu la firma puede corregir la escala?
5. Halle la silueta izquierda de

6. Halle la firma de un crculo y de un cuadrado (use muestras cada 45 grados)


7. Qu invarianza brinda la |FFT| ?
8. Por qu la firma puede corregir la escala?

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 112

Anexo: Prctica de Octave


Operaciones bsicas de matrices:
x = zeros(20,20);
y = ones (20,20);
x1 = x + y;
x1 = x./ y;
x1 = x.* y;
t = x'

define una matiz x de ceros de 20 x 20.


define una matiz y de unos de 20 x 20.
suma de matrices.
divisin de matrices punto por punto.
multiplicacin de matrices punto por punto.
Calcula la transpuesta de la matiz.

Para ver el contenido de una variable digtela y presione Enter. Por ejemplo una vez ejecutado x=
zeros(20,20); digite x para ver su contenido.
En octave se pueden hacer scripts que contengan varios comandos, el archivo script debe tener extensin .m.
En linux desde la carpeta que contiene el programa se invoca a octave escribiendo octave, lo cual produce que
se despliegue: octave1>, ingrese el nombre del archivo m para ejecutarlo, pero sin la extensin m, ejemplo
ini si el archivo se llama ini.m
Cree un archivo llamado ini.m con el siguiente contenido (la imagen suelo debe existir en la ruta sealada):
%cargalaimagendesdeunarchivojpg.
x=imread('/home/guido/pruebas/octave/suelo.jpg');
%muestralaimagencargadaenlavariablex
image(x)
Luego de ejecutar el script visualice la imagen que se despliega en la ventana de la grfica (figure 1). Se
recomienda dimensionar las ventanas de texto y grfica de tal forma que se los vea simultneamente.
Cuando se trabaja con imgenes en niveles de gris, se pueden aplicar varios esquemas de colores a la imagen
tales como:
colormap(gray);
colormap(pink);
colormap(cool);
colormap(hsv);
La opcin colormap(map) es un antiguo esquema de matlab que presentaba la imagen en color.
En octave, las grficas e imgenes se muestran en una ventana diferente. Para crear una ventana adicional de
grfica se usa el comando: figure(2) donde el nmero entre parntesis hace referencia al nmero de la ventana
creada o por crear para graficacin.
Dentro de un script los comentarios se ponen con lneas que empiecen con %. Si los comentarios se ponen al
inicio del archivo, estas lneas aparecen al hacer help <nombre_del_archivo>, prubelo.
La siguiente secuencia de comando reconstruye una seal a partir de sus componentes de la serie de Fourier: y

6
x 1
3 x 1
5 x
y=f ( x )= sen (
)+ sen(
)+ sen (
)+ ...
5
3
5
5
5

x = [0:0.1:10]
y = 6/%pi * sin((%pi * x)/5);
plot(x,y);
hold;
y = 6/%pi * sin((%pi * x)/5) + 2/%pi * sin((3*%pi*x)/5);
plot(x,y);
y = 6/%pi * sin((%pi * x)/5) + 2/%pi * sin((3*%pi*x)/5) + 6/%pi sin((5*%pi*x)/5)/5;
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 113

plot(x,y);
Nota. El cdigo anterior est hecho para Scilab, para octave, cambie %pi por pi.
Para repetir los comandos anteriormente ingresados a Octave, use la tecla flecha arriba. El ; ejecuta el
comando en modo silencioso, si se lo omite el comando se ejecuta pero adems se muestra el contenido de la
variable afectada. Use help y el nombre del comando para obtener ayuda, ejemplo helpfft2
Existe gran cantidad de manuales de octave en lnea, sin embargo su sitio oficial se encuentra en:
https://www.gnu.org/software/octave/doc/interpreter/

DEBER
1
2
3

Hacer las funciones reflejo vertical, reflejo horizontal.


Hacer la funcin de autocorrelacin para determinar la posible posicin del patrn.
Presentar el resultado de aplicar las funciones de imgenes a una imagen de prueba comn.

Entregar: IMPRESO: Imagen original, resultado de la aplicacin de cada funcin (numerales 1, 2 y 3),
para el caso del numeral 2, presente tres casos de la imagen conteniendo el patrn y el patrn. Se
aceptar un mximo de 10 hojas. EN ARCHIVO: el informe y los programas octave *.m de los
numerales 1 y 2.

Ejemplo de una funcin en Octave.


function[entre]=entre(A,s,t)
%Nombredelafuncin:entre
%ParmetrosA:matrizm*n
%s:niveldegrisinferior
%t:niveldegrissuperior
%Definicin:
%ente(A,s,t)=1,sis<=A(n1,n2)<=t;y0casocontrario
%
%Ejemplo:
%
%A=[012;345;670];
%y=entre(A,2,5);
%
%Seobtiene:y=001
%111
%000
%
%Autor:GuidoOchoaMoreno.
%Contacto:guido8a@gmail.com
%Fecha:abrildel2001
[n,m]=size(A);
R=zeros(n,m);
fori=1:n;
forj=1:m;
if(A(i,j)>=s)&(A(i,j)<=t),
R(i,j)=1;
end;
end;
end;
[entre]=R;

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 114

Filtrado pasa bajos y pasa altos usando la FFT con Octave


Prerrequisitos:
1. Se debe contar con una imagen en niveles de gris en formato jpg, en este caso se usa la
imagen suelogris.jpg.
2. Contar con Octave.
A continuacin se muestra las instrucciones octave y su resultado.
x=imread('/home/guido/pruebas/octave/suelogris.jpg');
image(x)

Para visualizar mejor la imagen se usa colormap:


colormap(gray)

La imagen gris tiene valores entre 0..250, octave maneja un esquema de grises entre 0 y 100,
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 115

donde 0 es negro y 100 es blanco. Para ver mejor la imagen se debe escalar los valores a un
rango de 0 100. Usamos las siguientes sentencias:
min(min(x)) retorna el valor mnimo de la imagen: ans=0
max(max(x)) retorna el valor mximo de la imagen: ans=250
x1=x/3.2; Se escala la imagen y al mismo tiempo se la oscurece un poco.
image(x1)
colormap(pink)
Se despliega la imagen de la izquierda.

y=fft2(x1);
size(y) imprime el tamao de y: 300 x 400, esto sirve para calcular la zona a poner
ceros. Filtrando al 40% se debe eliminar la zona central de 253 x 190 pixeles, es decir desde
y= (150 190/2) hasta (150 + 190/2 -1), x=(200 253/2) hasta (200 + 253/2 -1).
y(55:244,74:326)=0;
x2=ifft2(y);
figure
image(abs(x2))
colormap(pink)
Se despliega la imagen del lado derecho, en la cual se observa un efecto de difuminado o una
imagen algo borrosa. Filtrando al 50% se debe eliminar la zona central de 283 x 212 pixeles,
es decir desde y= (150 212/2) hasta (150 + 212/2 -1), x=(200 283/2) hasta (200 + 283/2
-1).
y(44:255,59:341)=0;
x2=ifft2(y);
figure
image(abs(x2))
colormap(pink)
El resultado se muestra a continuacin, quedando como ejercicio para el estudiante hacer un
filtrado al 60% y 80%.
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 116

image(abs(x2))
colormap(pink)
title('resultadodefiltraral50%');

Para el filtro pasa altos, se escoge filtrar a un 5%, con lo cual se deben eliminar las cuatro
zonas esquineras de 45 x 34 pixeles, es decir desde y desde 1 hasta (34), y de (300 34 + 1)
hasta 300 y para x, desde 0 hasta (45 -1) y desde (400 - 45 +1) hasta 400.
%Filtropasaaltos:
y=fft2(x1);
y(1:34,1:45)=0;
y(1:34,366:400)=0;
y(267:300,1:45)=0;
y(267:300,356:400)=0;
x3=ifft2(y);
figure
image(abs(x3))
title('resultadodefiltraral5%conFPA');
colormap(pink)
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 117

colormap(gray)
%Seobtieneygraficaelnegativo
x4=max(max(abs(x3)))abs(x3);
image(x4);
title('Negativodelresultadodefiltraral5%conFPA');
A continuacin se muestra el resultado del FPA en escala de grises y su negativo, calculado en
x4.

El resultado final resulta un excelente detector de bordes.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 118

Instalando paquetes en Octave


La lista de paquetes para octave se halla en: http://octave.sourceforge.net/packages.php, para
versiones anteriores a octave 4.0 hay una extensa lista de paquetes en:
http://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual
%20Package%20Releases/
A continuacin vamos a instalar el paquete image, el cual se selecciona y descarga desde la
lista de la pgina indicada. El archivo descargado es: image-2.2.2.targz.
Es necesario contar dems con otros paquetes dependientes que aparecen al intentar instalar
mediante:
pkginstall/home/guido/Descargas/image2.2.2.tar.gz
error: the following dependencies were unsatisfied:
image needs signal >= 1.2.0
image needs general >= 1.3.0
Se deben instalar los paquetes dependientes para continuar La forma ms corta es usar el
administrador de paquetes de Linux, por ejemplo en Linux Mint, se busca octave-image y
simplemente se instala el paquete mediante un clic en Instalar.

Luego de instalar el paquete de imgenes se debe reiniciar el octave si se hallaba activo para
que se cargue el nuevo paquete instalado.
Ahora quedan disponibles funciones como rgb2gray para convertir imgenes en color (rgb) a
niveles de gris entre 0 y 255. De todas formas, las imgenes en octave se muestran en niveles
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 119

de gris en un rango de 0 a 100, de modo que para ver bien una imagen en color se debe
reescalarla al rango de 0 a 100. Ejemplo:
%Imgenesennivelesdegrisusandorgb2gray
x=imread('/home/guido/pruebas/octave/suelo.jpg');
image(x)
x1=rgb2gray(x);
mx=100/abs(max(max(x1));
x2=x1.*mx;
figure2
image(x2);
title('Imagenennivelesdegrisentre0y100');
colormap(gray);
figure2
%seleccionalafigura1paraponerlettulo
figure1
title('Imagenoriginalencolorformatorgb');
Lo anterior produce:

Hay varias formas de visualizar una imagen usando colormap, para listar todas las
posibilidades de colormap use:
colormap('list');
vea tambin: http://octave.sourceforge.net/image/NEWS.html
Para usar una ventana grfica se la debe primero seleccionar antes de ejecutar un comando
que puede cambiar su conternido, por ejemplo:
figure2
image(x2)
colormap(autumn)
El resultado se muestra a continuacin:
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 120

x3=imsmooth(x2);
figure3
colormap(gray);
image(x3);

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 121

Aplicaciones prcticas

1. Cambio de color de una imagen usando un rango de tolerancia


Se trata de cambiar un color por otro en una imagen, por ejemplo que los pixeles de color
amarillo cambien a color morado. El problema radica en que como existen 16M de colores, se
debera especificar cual clor amarillo es el que debe ser reemplazado por que color morado.
Supongamos que se trate del color amarillo: FEDC01, y que el morado sea 832AF4, siendo
que se trata de un color muy especfico puede ser que unos pocos pixeles coincidan con el
color amarillo fijado y el resultado ser algo frustrante porque no se alcanzar un efecto
notorio o probablemente no haya un solo pixel que cambie de color.
El proceso de cambiar colores no se basa en tomar valores exactos de color, sino un pequeo
rango de colores que se hallen en torno al color seleccionado. La clave est en fijar adems
del color base a reemplazar un rango de tolerancia.
Sea el color base a reemplazar de coordenadas RGB, y una tolerancia definida por T, entonces
los colores a ser reemplazados son todos aquellos colores rgb que se hallan a una distancia de
color tal que:
Distancia de color Tolerancia = T =( rR) +( gG)2+(bB)2

Lo que es equivalente a determinar los colores rgb a ser reemplazados por todos aquellos que
cumplan con:
2

T ((rR)+(gG) +(bB) )
De modo que todos los colores rgb que cumplan con esta condicin determinan la regin de
color a ser reemplazada. Por ejemplo si T = 10, y usando el color amarillo indicado como
color base, tenemos que:
2

100 ((r FE) +( gDC ) +( b01) )


Entonces el color r=FE, g=DC, b=01 produce un valor total de 0 que resulta 100, por lo que
cumple la condicin, al igual que r=F8, g=D7, b=03 que produce un valor de (F8FE) +
(D7DC) + (0301) = 41H = 65 por lo cual est dentro de la tolerancia ya que 65 100.
Para facilidad de los clculos se puede trabajar en valores decimales (base 10), en este caso el
color base sera R=254, G=220 y B=1, y los colores rgb a reemplazar seran todos los que
cumplan con:
100 ((r 254)2 +( g220)2 +(b1)2)
O escrito de otra forma:
((r254)2 +(g220)2 +(b1)2) 100
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 122

2. Cambiar un color determinado de una imagen a transparente.


Al igual que en el caso anterior de cambiar el color de una imagen usando un rango de
tolerancia en este caso se debe trabajar con un rango de colores al rededor del color
seleccionado para convertirlos a transparentes.
No todos los formatos pueden manejar transparencia, por ejemplo JPEG no soporta
transparencias, para ello, es necesario crear un nuevo elemento que maneje esta propiedad.
Una imagen RGB se expresa en 24 bits, mientras que para incluir la propiedad de
transparencia se usan 32 bits, algunos esquemas usan los primeros 8 bits para la transparencia
mientras que otros como RGB los ltimos 8.

El formato de imgenes que soporta transparencias, concretamente png, usa un esquema


RGB o ms conocido como RGBalfa o RGBa.
El valor de alfa vara de 0 (transparente) a 1 (no transparente) y los valores se codifican al
igual que RBG de 0 a 255 o 00 a FF. Un valor de FF significa 100% de opacidad o 0% de
transparencia, mientras que un valor alfa de 0 significa completamente transparente.
El proceso a seguir ser el siguiente:
1.
2.
3.
4.

Seleccionar el color que se convertir en transparente.


Cargar la imagen RGB.
Crear una imagen del mismo tamao en formato RGBa.
Para cada pixel de la imagen cuyo color est dentro del rango de tolerancia del color
seleccionado, reemplazarlo por transparente, convirtiendo el valor alfa (a) a 0.

Ejemplo:
Sea el color base: R=A2, G=33, B=D3, tolerancia = 10, los colores que cumplan con:
(( r A 2)2+(g33)2 +( bD 3)2) 100
Se los reemplazar por R=A2, G=33, B=D3, a=0, caso contrario, no se reemplaza e valor de
a=0 y permanece en 100% o el valor de FF.
A continuacin se muestra un programa en java que recibe una imagen en RGB y la convierte
en RGBA para manejar la transparencia:
privatestaticint[][][]getPixels(BufferedImageimage){
int[][][]result=newint[height][width][4];
for(intx=0;x<image.getWidth();x++){
for(inty=0;y<image.getHeight();y++){
Colorc=newColor(image.getRGB(i,j),true);
result[y][x][0]=c.getRed();
result[y][x][1]=c.getGreen();
Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 123

result[y][x][2]=c.getBlue();
result[y][x][3]=c.getAlpha();
}
}
}

3. Mejorar una imagen con filtro high boost.


El uso del filtro high boost acenta los detalles de una imagen. El filtro pasa altos acenta los
detalles dela imagen. Este filtro pasa altos puede verse como la diferencia entre la imagen
original y el resultado de aplicar un filtro pasa bajos a dicha imagen, es decir:
Pasa alto = Imagen original Pasa bajo.
El filtro high boost denominado tambin de nfasis de las frecuencias altas, se define de la
siguiente forma:
High boost = (A)(Original) Pasa bajo
= (A)(Original) (Original Pasaalto)
= (A 1) (Original) + Pasa alto
donde A es un escalar cuyo valor debe ser mayor o igual a 1.

[ ][

] [

0 0 0 1 1 1 1 1 1
1
1
F HB = (A1)Original+( Pasa alto)=( A1) 0 1 0 + 1 8 1 = 1 9 A1 1
9
9
0 0 0
1 1 1
1
1
1
Con A = 1, se tiene que el filtro high boost es igual al filtro pasa alto, tal como se indic en el
captulo 4.
O tambin calculando el filtro desde la definicin inicial: (A)(Original) Pasa bajo tenemos:

F HB

[ ] [ ] [

0 0 0
1 1 1
1
1
1
1
1
= A Original (Pasa bajo) = A 0 1 0
1 1 1=
1 9 A1 1
9
9
0 0 0
1 1 1
1
1
1

Si A > 1 se aade a la imagen original el efecto del filtrado pasa altos que es el resaltar los
bordes, con esto se logra una imagen con nfasis en los bordes.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 124

Resultado de la aplicacin del filtro high boost con A=2 se muestra a continuacin:

4. Otros problemas a resolver con procesamiento de imgenes.


1. Sumar imgenes de tal forma que no exista saturacin en la imagen de resultado.
2. Restar imgenes de tal forma que no exista saturacin en la imagen de resultado.
3. Escalar una imagen y reconstruirla mediante interpolacin de valores. La funcin debe
probarse con valores de escala entre 0.5 y 4.
4. Buscar las zonas claras y oscuras de una imagen RGB. La funcin debe reemplazar las
zonas oscuras por el color negro y las claras por el blanco. El tamao mnimo de la
zona es de 3 x 3 pixeles.
5. Escalar un glifo de 4x8 pixeles a 8x16. Se trata de una imagen binaria. El tamao del
glifo puede variar de 4x8 hasta 7x15 y el programa debe fijar la escala necesaria en
forma dinmica para obtener el resultado siempre en 8x16.
6. Pasar a binaria una imagen usando el filtro de la mediana visto en clase: si el valor de
resultado es menor al promedio debe ser cero, caso contrario 1.
7. Pasar a binaria una imagen usando el filtro de la mediana de orden 5 visto en clase: si
el valor de resultado es menor a la media de la imagen, el resultado es cero, caso
contrario 1.
8. Usar CMY-K para aclarar u oscurecer una imagen.
9. Buscar zonas amarillas en una imagen y reemplazarlas con color blanco. El programa
debe retornar el nmero de pixeles amarillos juntos encontrados. Slo se tomarn
zonas de ms de 20 pixeles amarillos.
10. Usar imgenes que posean dos zonas del mismo color separadas. Hacer un programa
para calcular la distancia de las zonas en pixeles y en porcentaje respecto a la longitud
de la imagen.
11. Usar la correlacin para determinar la posible posicin de una seccin de la imagen
dentro de una imagen ms grande. La funcin debe retornar las coordenadas del
pixel con mayor valor. Use el criterio de valor mximo para determinar la posicin.
Comprobar si se detecta la posicin correcta del patrn, utilizando varios tamaos de
la imagen pequea, y alterando los pixeles de esta por un factor entre 0.8 y 1.2. Usar
imgenes en niveles de gris.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 125

Bibliografa
1.

Acocela Emilio, Procesamiento de imgenes, ESPE, 1996.

2.

Bishop Christopher M., Neural Networks for Pattern Recognition, Claredon Press
Oxford, Oxford University Press, Inc., USA, 1997.

3.

Carrera Vinicio E., Curso de Redes Neuronales, ESPE, 1997.

4.

Gonzlez Rafael C. & Woods Richard E., Digital Image Processing, Addison-Wesley
Publishing Company, Inc., USA, 1992.

5.

Jain Anil K. Fundamentals of Digital Image Processing, Prentice-Hall International, Inc.,


USA, 1989.

6.

Kay David C. & Levine John R., Graphics File Formats, Second Edition, Wind
Crest/McGraw-Hill, Inc., USA, 1995.

7.

Kheng Wee Leow, B.S.,M.S., Visor: Learning Visual Schemas in Neural Networks for
Object Recognition and Scene Analysis, Dissertation for Doctor of Philosophy, The
University of Texas at Austin, august 1994.

8.

Lim Jae S., Two - Dimensional Signal and Image Processing, Prentice-Hall, Inc., 1990.

9.

Ochoa Guido E., Procesamiento de Imgenes: Reconocimiento de Texto Manuscrito,


Escuela Superior Politcnica del Ejrcito, 2000.

10. Oppenheim Alan V., Discrete-Time Signal Processing, Prentice Hall, Inc., USA, 1989.
11. Parker J. R., Algorithms for Image Processing and Computer Vision, Willey Computer
Publishing, John Wiley & Sons, Inc., USA, 1997.
12. Scilab Group, Introduction to Scilab-2.4, INRIA Meta2 Project/ENPC Cergrene, Francia,
1998.
13. SNNS, Stuttgart Neural Network Simulator, User Manual, Version 4.1, University of
Tbingen, Germany, 1999.
14. Stark Henry, Image Recovery: Theory and Application, Academic Press, Inc., USA,
1987.
15. Wasserman Philip D., Neural Computing Theory and Practice, ANZA Research, Inc., Van
Nostrand Reinhold, USA, 1989.
16. Wechsler Harry, Computational Vision, Computer Science Department, George Mason
University, Fairfax, Virginia, Academic Press, Inc., Washington 1990.

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 126

Internet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

www.yorku.ca/eye/ciediag1.htm: Diagrama de cromancia.


www.yorku.ca/eye/toc.htm: Libro de percepcin visual.
hhtp://www.paisvirtual.com/informatica/navegadores/toniomos/pdi/temas-pdi.htm: texto
de procesamiento de imgenes.
http://octave.sourceforge.net/packages.php
http://sourceforge.net/projects/octave/files/Octave%20Forge%20Packages/Individual
%20Package%20Releases/
http://octave.sourceforge.net/
http://octave.sourceforge.net/image/NEWS.html
https://en.wikipedia.org/wiki/Trichromacy
https://en.wikipedia.org/wiki/RGB_color_model
https://en.wikipedia.org/wiki/RGBA_color_space
https://en.wikipedia.org/wiki/Evolution_of_color_vision_in_primates

Procesamiento de Imgenes

Guido Ochoa Moreno

Pgina 127

S-ar putea să vă placă și