Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Imgenes
Revisin 8
1997 - 2015
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
Albert Einstein
Biografa
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
1 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.
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.
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)
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.
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
1
Si una seal f(x) es peridica, con perodo T, se dice que posee una frecuencia f=,
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.
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.
f(x) = {|sen x|
{
f ( x) = sen (x ), 0< x <
sen (x), < x <0 ; T =2
{
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
{
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.
Cualquier seal o funcin peridica puede ser representada por una suma de sinusoides,
denominadas componentes sinusoidales.
En general, cualquier funcin peridica que sea integrable dentro de un perodo T, puede ser
descompuesta en una serie de senos y cosenos.
Serie de FOURIER:
a0
f (x)=
2
+ a n cos ( n L x ) + b n sen ( n L x ) (3)
n=1
L
1
an =
L
f ( x ) cos ( n L x ) dx (4)
L
L
1
bn =
L
f ( x ) sen( n L x ) dx (5)
L
T
L=
2
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
1 nx
a n=
5 5
f (x ) cos (
5
)dx
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 5
1 1 n x
a n=
5 5
0 dx + 3 cos(
50 5
)dx (6)
5 5
an =
3
5
cos(
0
n x
5
)dx =
3 5
5 n
sen([n x
5 0
) =
3 5
5 n ]
sen (n ) 0 { }
3
an = 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 5
3
a 0=
50
cos (0)dx = 35 dx = 3
0
Igualmente,
3(1 cos n )
b n=
n
3
b n= (1 cos( n ))
n
3 3 6
b n= (1 1) = 0 ; n impar b n= (1+ 1) = ; n par
n n n
f ( x)=
3
2
6
{
+ sen (
x 1
5
)+ sen (
3
3 x 1
5
)+ sen (
5
5 x
5
)+... }
a0 3
El trmino de = 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 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:
3/2, {
f ( x) = 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.
e j = cos j sen
j j j j
e + e e e
cos = y, sen =
2 2j
n x
j
f ( x) = cn e 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.
f (x)=
3
2
6
{
+ sen(
x 1
5
)+ sen (
3
3 x 1
5
)+ sen (
5
5 x
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]
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);
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:
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.
{
T T
A, < x <
f (x) = 2 2
0, cc
F(u) = f ( x)
e 2 j x u
dx F(u) = A e2 j x u dx
T / 2
T/2
F(u) = A [ 1
j2u
e2 j x u ]
T / 2
F( u) =
A
j 2u
[ e j T u e j Tu ] = A
u [ e j Tue j Tu
2j
=]A
u
sen( T u)
sen (x )
sa (x) = sinc (x) =
x
Grfica de F(u):
Los ceros de Sinc(x) son los mismos de Sen(x), y Sen(x) = 0 cuando x = n, con n 0
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).
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.
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.
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).
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.
Ejemplo:
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].
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
El smbolo que describe esta operacin es *. La convolucin de dos secuencias x[n] y h[n] se
define como:
k
y[n] x[n] * h[n] x[k ]h[n k ]
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: y [0] = x [0] h [0] + x [1] h [-1] = 1
n=1: y [1] = x [0] h [1] + x [1] h [0] + x [2] h [-1] = 0
n=2: y [2] = x [0] h [2] + x [1] h [1] + x [2] h [0] = 1
n=3: y [3] = x [0] h [3] + x [1] h [2] + x [2] h [1] + x [3] h [0] = -2
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)
Demostracin: Nx = N2 - N1 + 1
Nh = M2 - M1 + 1
Con lo que se demuestra que el inicio de y[n] es (N1 + M1) y el fin es (N2 + M2).
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.
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.
Filtrar:
Filtrar:
1)
2)
2.8 Problemas
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.
{
f ( x) = 1, 0< x<1
0, cc
a) T=2
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.
2 n 1
Respuesta: a n= sen( ) , a 0=0 b n= (1cos (n ))
n 2 n
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]
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.
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].
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).
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.
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 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.
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.
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.
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.
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:
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.
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.
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.
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.
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,
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.
1 0 0 0 0 0 0 1 0 0 0 0 0 0
0 1 1 1 0 1 1 1 1 1 1 1 0 0
0 0 1 1 0 0 0 0 1 1 1 1 1 0
0 0 1 1 1 1 1 0 0 1 1 1 1 0
1 0 0 0 0 0 0 1 0 0 0 0 1 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 2 3 4 5 4 3 7
3 1 1 1 2 7 7 7
7 4 1 1 0 5 0 1
3 5 7 6 2 3 0 2
Ilustracin 6. Islas en imgenes con varios niveles de gris.
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.
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:
D4 (p, q) = |x - s| + |y - t| (8)
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:
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 D8: 2 2 2 2 2
3 2 1 2 3 2 1 1 1 2
2 1 0 1 2 2 1 0 1 2
3 2 1 2 3 2 1 1 1 2
4 3 2 3 4 2 2 2 2 2
Ilustracin 7. Distancias D4 y D8
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.
Para las imgenes f(x, y) y g(x, y) del mismo tipo y tamao las operaciones bsicas se definen
como:
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.
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:
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 1 0 f(x,y): 0 0 0 0 AND: 0 0 0 0 C: 1 1 0 1
0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1
0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1
0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 1
0 0 1 0 0 0 1 0 0 0 1 0 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 1 0 f(x,y): 0 0 0 0 XOR: 0 0 1 0 C: 1 1 0 1
0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1
0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1
0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1
0 0 1 0 0 0 1 0 0 0 0 0 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.
P: 0 0 1 0 g(x,y) 1 1 1 1 XOR: 1 1 0 1 C: 1 1 0 1
0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1
0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1
0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 1
0 0 1 0 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.
Z1 Z2 Z3
Z5 = 1/9 (Z1+Z2+Z3+Z4+Z5+Z6+Z7+Z8+Z9)= 1/9 Zi Z4 Z5 Z6
Z7 Z8 Z9
A modo de coeficientes:
W1 W2 W3
Z5 = W1Z1 + W2Z2 + .. + W9Z9 = WiZi = Z' W4 W5 W6
W7 W8 W9
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.
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 X0 x
[ ][
x' = 1 0
y' 0 1
X0 x
Y0 y][ ] o mejor expresado: y' = 0 1
1 0 0
Y0 y
1 1
(10)
[ ]
1 0 X0
v ' = T v , donde T es la matriz de transformacin: 0 1 Y0
0 0 1
Ejemplo:
x ' = x + X0 x ' = x +3
con valores de X0 = 3 y Y0 = 1, tenemos: (11)
y ' = y +Y 0 y ' = y +1
0 1 2 3 0 1 2 3 4 5 6 7
0 4 7 1 0
1 2 5 3 1 4 7 1
2 0 2 1 2 2 5 3
3 0 2 1
4
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
(12)
Ejemplo: Sx = 2, Sy = 2
0 1 2
0 4 7
1 2 9
2
0 1 2 3
0 4 7
1
2 2 9
3
x = 2x
y = 2y
Si x = 0 x = 0
Si x = 1 x = 2
Si y = 0 y = 0
Si y = 1 y = 2
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.
Sen en los ejes se hace sen en los ejes , lo que equivale a usar un
ngulo negativo puesto que:
Procesamiento de Imgenes Guido Ochoa Moreno Pgina 39
sen () = sen ()
[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.
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.
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.
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 card (f )=N 1 N 2 (14)
N 11 N 21
sumpix (f )
3. Media media = ( f ) = (16)
card(f )
4. Desviacin Estndar
1
2( f )
N 1 n1 n2
( f (n1 , n2 ) ( f )) 2
(17)
Ejemplo:
f (x, y)=
[[ ] ]
7 1 4 2 2
6 5
0 2
3
1
=
1
9
7
29
9
+ 1
29
9 ] [
+. . .
Existe un mtodo aproximado de obtener (f) que es 2/3 (promedio de la dispersin mxima).
(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. (18)
6. Entre
1, s f (n1 , n 2 ) t
entre ( f , s, t )
0, caso contrario. (19)
Ejemplo:
f (x, y)= 7 1 4 g= 4 6 1 Entre (g, 1.3, 5) 1 0 0 =
6 5 3 7 3 2 0 1 1
0 2 1 0 1 2 0 0 1
7. Truncado
f (n1 , n2 ), f (n1 , n2 ) t
trunc( f , t )
0, caso contrario (20)
Ejemplo:
f (x, y)= 7 1 4 Trunc (f, 3)= 7 0 4
6 5 3 6 5 3
0 2 1 0 0 0
8. Umbral
1, f (n1 , n2 ) t
umbral ( f , t )
0, caso contrario. (21)
Ejemplo:
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 , g f (n , n
n1 , n2
1 2 ) g (n1 , n 2 )
(23)
R f , g ( , ) f (n
n1 , n2 R
1 , n 2 ) g ( n1 , n 2 )
(24)
Mediante el uso de las funciones de imgenes se puede intentar reconocer patrones. En una
forma similar a la utilizacin de XOR.
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):
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:
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.
Donde s y t definen los lmites de cada rango, debiendo aplicarse los rangos necesarios
conforme sea el caso.
Ejemplo:
f= 2 2 3 15 p= 0 1 2 14
3 1 14 15 1 2 13 15
0 13 14 9 3 15 14 8
15 15 7 10 14 13 7 9
Una vez aplicada la funcin Entre a las dos imgenes , se procede al clculo de Igual entre las
dos resultantes, as:
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.
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):
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.
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. En la imagen a continuacin seale con una D los pixeles vecinos ND y con una X
los pixeles de la vecindad N4.
T:
19. Halle las funciones: restriccin, umbral (f, 2), u (f), <f, g>:
f: 1 2 3 1 g: 0 1 1 u(f):
0 3 2 3 0 1 0
<f,g>:
rest umbral
20. Diga las caractersticas de una imagen de 4 bits cuya u (f) = 12.
21. 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
0 1 2 7 11 15 1 0 0 6 11 15
0 1 7 7 12 15 1 0 7 6 12 15
0 1 7 7 10 15 1 0 8 6 10 15
0 1 6 11 11 11 1 0 8 11 11 11
0 1 10 1 12 2 1 0 10 0 12 3
0 1 12 2 2 2 1 0 12 1 1 3
Use las funciones entre, igual y cardinalidad.
Procesamiento de Imgenes Guido Ochoa Moreno Pgina 48
22. Diga cmo se puede hacer reconocimiento de imgenes con la funcin de
autocorrelacin. Aplique la explicacin a las imgenes a continuacin.
F 0 0 0 0 0 0 g: 0 0 0 0 Patrn:
0 0 0 0 0 0 1 0 1 0 1 0 1
0 0 0 0 0 0 0 1 0 0 0 1 0
0 1 0 1 0 0 1 0 1 0 1 0 1
0 0 1 0 0 0 0 1 0 0 0 1 0
0 1 0 1 0 0
0 0 1 0 0 0
Wiener, Norbert
(Columbia, EE UU, 1894-Estocolmo, 1964) Matemtico estadounidense.
s = T(r) (1)
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:
s 2s1 0(L1)
m = = = 1
r 2r 1 (L1)0
s 1s s s (L1)s
m = 1 = = 2 =
r 1r r 2r 0r
(Nivel de gris resultante = valor mximo - valor original), lo que corresponde a la ecuacin de
la lnea recta mostrada en la ilustracin 1, donde:
07 7
m = =
150 15
s 2s 7 7s 7
m = = s = 7 r
r 2r 15 r 15
Mediante una transformacin similar a la anterior pero con rectas que posean pendientes
positivas, se puede aclarar u oscurecer una imagen.
Ejemplo:
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.
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.
s = C ln (1+|r|) (3)
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.
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.
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.).
k k nj L 1 k
sk ( L 1) p(r j ) ( L 1) n
j 0 j 0 n n j 0 j
(6)
2 5 7
3 8 3
6 1215
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.
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
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.
As:
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.
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.
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.
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:
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.
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.
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:
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.
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).
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:
Ejemplos:
1 1 1 2 2 2 1
1 1 2 3 4 3 2 -1 2 -1 0.1 -.01 0.1
2 2 5 2 2 2 10 2 -.01 -10 -.01
a a 2 3 4 3 1 -1 2 -1 0.1 -.01 0.1
a a 1 2 2 2 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.
1 1 1
1
1 1 1
9
1 1 1
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):
Prewitt:
Sobel:
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 1 5 5 10 11 filtro: f: 1 1 5 10 11 11
0 1 2 7 11 15 1/9 1/9 1/9 0 15
0 1 7 7 12 15 1/9 1/9 1/9 0 6 15
0 13 4 11 10 15 1/9 1/9 1/9 0 15
0 10 6 11 11 11 0 11
0 10 10 1 12 2 0 2
0 1 12 2 2 2 0 1 12 2 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.
0 5 10 15 n: 1.2 0.8
5 5 1 5
10 1 10 15
5 10 15 1
256NG:
Stretching:
9 Como se manifiestan en una imagen las frecuencias bajas y las frecuencias altas.
12 Disee filtros pasa bajos con coeficiente de 1/7, 1/8, 1/9, y 1/12.5.
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 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).
Rojo: R, = 700 nm
Verde: G, = 546.1 nm (0)
Azul: B, = 435.8 nm
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.
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:
La suma en iguales proporciones de los colores RGB nos da el color BLANCO. La ausencia
de estos colores es el NEGRO.
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.
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.
Este modelo se usa para la transmisin de seales de TV. Las iniciales YIQ representan:
Y: Iluminacin o brillo.
I: Componente del color para ser transmitido con portadora en fase. (Inphase)
Q: 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) (1)
b = B/(R+G+B)
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.
y = 2 (c + m) (2)
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.
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.
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)
(4)
G R B
g r b Donde, r + g + b = 1
RG B RGB RG B
(7)
3
S 1
( R G B)
min R , G , B
(8)
2 ( R G ) ( R B)
1
1
H cos
( R G ) 2 ( R B )(G B )
(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.
(11)
(12)
luego, se usa R 3Ir , G 3Ig , B 3Ib para llegar a RGB, en todos los casos de H.
(13)
(14)
(15)
(16)
(17)
(18)
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.
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(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.
[ ] []
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'.
[
0 10 ] [
R= 3 11 G= 12 6
0 15 ] [ ]
B= 5 9
0 12
[
C '= 12 4
15 5 ] [ ] [ ]
M '= 3 9 Y '= 10 6
15 0 15 3
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
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.
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:
Si se trata de buscar un color de fondo o de primer plano para el color dato, su negativo es la
primera opcin: 87AA22.
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:
[ ] [ ] [ ]
R= 7 1 G= 0 4 B= 0 6
7 0 3 6 4 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.
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
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 ):
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:
Ilustracin 5. (b) Imagen capturada mediante una pelcula sensible a la luz infrarroja, (a) Imagen coloreada
usando pseudocolor.
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:
B
Tamao del Paso B =
n+1
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.
(R, G, B):
0 1 10 11 6 7
1 4 10 0 6 7
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 ( ).
0 1 10 11 6 7
1 4 10 0 6 7
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 10
8 14
4 3
0 7
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.
Restauracin de Imgenes
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
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:
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)
0 1/8 0
1/8 1/8
0 1/8
Filtro pasa bajos de 5 puntos diferentes de 0 (2)
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.
El proceso de filtrado consiste en ordenar los valores de una vecindad definida y seleccionar
el valor de la posicin media.
Ejemplo:
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.
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 4 3
2 7 5
6 1
1 3 3
2 5 5
1 1
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:
Finalmente se debe redondear los valores para obtener la imagen en tonos de gris.
1 4 7 4
2 3 4 2
3 2 1 1
2 1 1 0
1 13
11 3
0 1 2 3 4 5
0 1 0 0 13 0 0
1 0 0 0 0 0 0
2 0 0 0 0 0 0
3 11 0 0 3 0 0
4 0 0 0 0 0 0
5 0 0 0 0 0 0
1 5 9 13 8,6 4,3
4,3 6 7,7 9,6 6,4 3,2
7,6 7,1 6,6 5,3 4,2 2,1
11 8,3 5,6 3 2 1
7,3 5,5 3,7 2 1,3 0,6
3,6 2,7 1,8 1 0,6 0,3
1 5 9 13 9 4
4 6 8 10 6 3
8 7 6 5 4 2
11 8 6 3 2 1
7 6 4 2 1 1
4 3 2 1 1 0
1 (3)
1 10 1 0 0 10 0 0
5 11
5 0 0 11 0 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:
Vemos entonces que en forma general el valor del paso para la interpolacin se obtiene con:
incremento de valor
paso (4)
S
Ejemplo
Restaurar la imagen con Sx=1.8 y Sy=1.4
1 10
0 6
0 1 2 3
0 1 0 10 0
1 0 0 6 0
2 0 0 0 0
1 6 10 5,5
0 3,3 6 3,3
0 2,35 4,28 2,35
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.
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.
Indique porque se puede restaurar una imagen aplicando un filtro pasa bajo.
3. Escale y restaure la imagen con Sx= 3 y Sy = 2.5. (2) Haga en la cuadrcula todos los
pasos.
1 11
3 9
4. Escale y restaure la imagen con Sx= 1.8 y Sy = 1.2. (2) Haga en la cuadrcula todos los
pasos.
1 14
5 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.
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)
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.
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.
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.
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.
1. Los pixeles blancos se consideran como CEROS, y los negros (texto) como UNOS.
2. La carrera inicial del cdigo es siempre de Ceros.
3. La codificacin es en carreras alternadas de ceros, unos, ceros, etc.
4. 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:
Tamao original n
Cr 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.
1
Rd 1
Cr (2)
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:
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 fin de lnea
8 16 24 8 fin de lnea
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:
Para indicar que hubo un error y que se ignore la ltima palabra, se usa el cdigo........ (Ocho puntos).
En otras palabras estas condiciones establecen que existe un cdigo nico por cada smbolo y
que la decodificacin no altera el mensaje.
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.
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
rn P(rn)
r1 21
r2 2
r3 9
r4 18
r5 21
r6 13
r7 13
r8 3
1c200u100c
400c
120u89c
Descartes, Ren
(La Haye, Francia, 1596-Estocolmo, Suecia, 1650) Filsofo y matemtico francs.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
Con los descriptores encontrados se definen algunas medidas tiles como son:
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
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.
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.
0 1 2 3 4 5 6 7 8 9
99% 94% 98% 96% 94% 90% 90% 93% 95% 92%
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.
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:
0 1 2 3 4 5 6 7 8 9
Tasa de acierto 99% 94% 98% 96% 94% 92% 90% 93% 95% 92%
Mascarillas por 1 1 3 1 5 3 2 4 4 4
dgito
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.
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
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:
0 1 2 3 4 5 6 7 8 9
Certeza (%) 99 93 99 95 100 95 99 100 95 74
Tabla 7. Reconocimiento de dgitos usando una red neuronal tipo retropropagacin mejores resultados.
0 1 2 3 4 5 6 7 8 9
Certeza (%) 100 99 100 94 99 99 94 98 99 98
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).
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.
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:
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.
La firma es el mtodo que permite atacar los problemas de rotacin y de cambio de tamao de
la imagen.
Ejemplo:
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
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);
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
y=f ( x )= sen ({x 1
5
)+ sen(
3
3 x 1
5
)+ sen (
5
5 x
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 Hacer las funciones reflejo vertical, reflejo horizontal.
2 Hacer la funcin de autocorrelacin para determinar la posible posicin del patrn.
3 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.
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;
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.
x=imread('/home/guido/pruebas/octave/suelogris.jpg');
image(x)
La imagen gris tiene valores entre 0..250, octave maneja un esquema de grises entre 0 y 100,
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)
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');
Es necesario contar dems con otros paquetes dependientes que aparecen al intentar instalar
mediante:
pkginstall/home/guido/Descargas/image2.2.2.tar.gz
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');
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)
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:
Lo que es equivalente a determinar los colores rgb a ser reemplazados por todos aquellos que
cumplan con:
2 2 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 2 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)
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.
Ejemplo:
Sea el color base: R=A2, G=33, B=D3, tolerancia = 10, los colores que cumplan con:
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();
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:
El filtro high boost denominado tambin de nfasis de las frecuencias altas, se define de la
siguiente forma:
0 0 0 [ ][
0 0 0 1 1 1 1 1 1
9
1 1 1
9
1
1
1
1
F HB = (A1)Original+( Pasa alto)=( A1) 0 1 0 + 1 8 1 = 1 9 A1 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:
[ ] [ ] [ ]
0 0 0 1 1 1 1 1 1
1 1
F HB = 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.