Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Escuela de Física
Universidad Nacional de Colombia
Sede Medellín
2006
1
1
OrquideaJAI
CALCULADORA DIGITAL
DE IMÁGENES
El software sobre procesamiento digital de imágenes DIP (Digital Image Processing) que
comúnmente se encuentra en el mercado, está orientado a procesos muy definidos, debido a que
están dirigidos a usuarios que no requieren un amplio conocimiento del tema. Esto trae como
desventaja que no permite buena flexibilidad de maniobra para usuarios más avanzados, ni la
enseñanza adecuada sobre el tema.
OrquideaJAI (Orquidea Java Advanced Images) es una calculadora, que permite realizar
procesamiento digital de imágenes vía el formato de una calculadora usual, de tal forma que el
éxito del resultado dependa del conocimiento y la habilidad que posea el usuario sobre el DIP
2
1.2 Requerimientos
1.2.2 Software
Como OrquideaJAI fue implementada con el lenguaje de programación Java de la Sun
Microsystems y las librerías de imágenes JAI (Java Advanced Images), es necesario para que se
pueda ejecutar instalar el siguiente software y en ese orden:
• Máquina virtual de java (jre-1_5_0 o superior).
• Las librerías de JAI (jai-1_1_2 o superior).
ambos se proporcionan con OrquideaJAI.
En una carpeta (por ejemplo denominada orquidea, o el nombre que se desee) se debe ubicar el
archivo Orquidea.jar (el archivo ejecutable). Se recomienda además crear una subcarpeta
denominada imagenes, donde se aconseja depositar las imágenes con que se trabajará. Esto último
permitirá un acceso más rápido a éstas.
3
1.3.2 Segundo plano
Ubicando el cursor en una celda y haciendo clic izquierdo sobre el ratón aparece un popmenú como
se ilustra en la Figura 1.2.a. En este se puede observar que solo está activada el item Leer
imagen. Haciendo clic en él se abre una Ventana/Diálogo que da la posibilidad de importar una
imagen que tenga alguno de los formatos soportados por este software, tal y como se ilustra en la
Figura 1.2.b. Al escoger la imagen se depositará en el panel sobre el cual se abrió el popmenú, tal y
como se ilustra en la Figura 1.2.c (imagen depositada en el panel 6).
Puede observarse que el panel dispone de ascensores (uno lateral y otro inferior) para poder
desplazar la imagen, en el caso de que ésta sea de mayor tamaño que él.
Si se ubica el cursor sobre un panel que posea imagen y se hace clic izquierdo sobre el ratón
aparece el popmenú pero con ítems que permiten realizar acciones sobre la imagen tales como:
Grabar, Copiar, Pegar, Borrar, Imprimir, Histograma RGB, Ver la imagen completa,
Convertir en niveles de gris, Negativo, Binarizar y Variar el histograma. Se sugiere al
lector que se familiarice con el uso de este popmenú antes de continuar la lección. Más adelante se
dará la explicación de lo que es un histograma y la binarización de una imagen.
4
En ella aparecen diferentes paneles, cada uno de los cuales
despliega un tablero de botones necesarios para realizar las
operaciones o transformaciones en cada modo de la
calculadora: Morfología, Booleana, Aritmética,
Geometría, Transformadas, Filtros, Generar. Estos
modos de operar se irán desarrollando a medida que se
Figura 1.3: Calculadora
avance en este tutorial.
5
2
PROPIEDADES BÁSICAS
DE LA IMAGEN DIGITAL
6
2.3 Un poco más sobre Muestreo y Cuantización
La conversión de las coordenadas a un dominio discreto está asociada al concepto de muestreo
(píxeles) y la conversión de la amplitud a un rango discreto está asociada al concepto de
cuantización (niveles de gris). Los dos procesos son necesarios para guardar en la memoria del
computador la función de imagen f ( x , y ) .
7
El efecto en las imágenes
digitales de cómo el muestreo
varía la resolución espacial se
ilustra en la Figura 2.4. A
medida que la resolución
espacial va decreciendo, se va
128 X 128 píxeles 64 X 64 píxeles 32 X 32 píxeles
incrementando el tamaño del
Figura 2.4
píxel y los detalles de la
imagen se van perdiendo (la imagen se “píxela”).
1
bit es la contracción para binary digit, y corresponde a la unidad más pequeña en información utilizando la notación
matemática binaria (Sistema Binario), donde las cantidades se representan con 0 y 1. Un byte corresponde a un conjunto
8
Rango Dinámico Esos negros, blancos, y niveles de gris combinados
Bits Niveles de gris
(decibles, dB)
constituyen la imagen en niveles de gris (o rango de
1 2 6
2 4 12 brillo). Un alto número de niveles de gris corresponderá
3 8 18
4 16 24 a una imagen que se representará digitalmente con un
5 32 30
mayo número de bits y de la misma forma tendrá la
6 64 36
7 128 42 capacidad de representar imágenes con mayor rango
8 256 48
9 512 54 dinámico (Tabla 2.1). El rango dinámico (DB en
10 1.024 60
11 2.048 66
decibeles, db) se define matemáticamente como:
12 4.096 72
13 8.192 78
14 16.384 84
DB = 10 log
(Amplitd Máxima )2
16
18
65.536
262.144
96
108 (Amplitd Mínima )2
20 1.048.576 120
Tabla 2.1
En un sistema digital se considera la amplitud máxima
n
como 2 , siendo n el número de bits, y como amplitud mínima 2 (es decir, 1) , correspondiente a
0
0 bit. Por ejemplo un digitalizador de 12 bits puede desplegar 4096 niveles de gris y corresponderá
a un sensor con un rango dinámico de 72 dB. Si el sistema de conversión es de 8 bits posee un
rango dinámico de aproximadamente 48 dB. El estándar de los sistemas de conversión digital es de
16 bits, es decir, tiene un rango dinámico máximo de 96 dB (valor teórico que en la práctica se ve
disminuido por factores de ruido electrónico).
2.5 Histograma
Una vez definidas las resoluciones, puede hablarse del histograma de una imagen. Un histograma
informa sobre el número de píxeles que hay para cada nivel de gris. Normalizado a la unidad,
puede entenderse como la probabilidad de que un valor de gris determinado aparezca en la
imagen.
El histograma de una imagen es una herramienta visual de gran aceptación y utilidad para el
estudio de imágenes digitales. Una simple mirada sobe él, puede proporcionar una idea muy
aproximada de la distribución de niveles de gris, el contraste que presenta la imagen y alguna pista
del método más adecuado para manipularla.
El histograma de una imagen digital con L niveles de gris en el rango [0, L-1] es una función
discreta de la forma:
nk
h(rk ) =
n
9
donde rk es el k-ésimo nivel de gris, n k es el número de píxeles en la imagen con ese nivel de
10
El histograma de una imagen a color RGB (Red-Green-Blue)
corresponde a un histograma para cada una de las bandas de
color (R, G, B): cada banda se trata en forma independiente.
Esto se ilustra con el histograma de la imagen de la Figura 2.7
obtenido con OrquideaJAI.
Figura 2.7
11
3
OPERACIONES BÁSICAS
CON IMÁGENES DIGITALES
3.1 Operaciones aritméticas
Las imágenes se pueden sumar, restar, multiplicar y dividir. Para ello se operan los valores
correspondientes (nivel de gris) píxel a píxel. Para sumar, por ejemplo, OrquideaJAI toma el valor
del píxel (i, j) de la imagen fuente y se le adiciona al valor del píxel (i, j) de la otra imagen fuente y
el resultado se lo asigna como valor al píxel (i, j) de la matriz imagen que representa la suma, y así
sucesivamente para los demás píxeles. De la misma forma opera para la resta, la multiplicación y la
división. Si las imágenes son de varias bandas el proceso se repite para cada una de ellas (banda 0,
banda 1, banda 2, banda 3). Las imágenes fuentes a operar pueden tener diferente número de
bandas, tener diferentes formatos (.gif, .jpg, …) y diferente tamaño, en cuyo caso OrquideaJAI
da una imagen resultado con el número de bandas igual al de la imagen de menos bandas (se
operan las bandas más bajas), con un tipo de datos igual al tipo de datos1 de la imagen que tenga
menos precisión en estos y el tamaño de imagen correspondiente a la intersección de las dos
imágenes superpuestas en su esquina superior izquierda. OrquideaJAI trabaja con 255 niveles de
gris, por lo que si el resultado de alguna operación entre píxeles da por encima de 255, asigna al
píxel correspondiente de la imagen resultante el valor de 255 y si la operación da por debajo de 0,
asigna como valor 0.
Para realizar estas operaciones con OrquideaJAI, se
importa las imágenes a operar en dos paneles cualesquiera.
Luego se procede a activar la calculadora digital haciendo
clic en su icono que se encuentra en la barra de
herramientas. En este paso la interfaz gráfica debe estar en
algo parecido a la ilustrada en la figura 3.1. A continuación
se escoge la opción de panel marcada con Aritmética y allí
Figura 3.1 se hace clic en el botón correspondiente a la operación a
realizar, por ejemplo, +, desplegándose
1
Las matrices (arreglos matriciales) que representan las imágenes son compuestas por números que pueden ser enteros o
de punto flotante. Aunque al final se redondean a números enteros para representarlas en pantalla.
12
una Ventana/Diálogo que permite asignar en sus campos
de texto el número de los paneles donde están ubicadas las
imágenes fuentes y el panel donde se ubicará la imagen
resultante. Antes de aceptar los datos de la operación a
realizar, es posible Previsualizar el resultado para tomar la
posible decisión de Cancelar (Figura 3.2). Una vez
aceptada la imagen resultante se ubica en el panel
Figura 3.2 correspondiente.
También es posible operar aritméticamente una imagen con una constante. En este caso
OrquideaJAI opera la constante con los niveles de gris correspondientes a cada píxel.
Adicionalmente OrquideaJAI también da la posibilidad de obtener el logaritmo decimal y la
función exponencial de una imagen. El logaritmo se emplea en ocasiones para aumentar el rango
dinámico de la imagen.
13
constituyen usualmente una parte intermedia de la secuencia del procesamiento de imágenes. El
lenguaje de la morfología matemática binaria es el de la teoría de conjuntos.
Las operaciones primarias morfológicas son la erosión y la dilatación. A partir de ellas se puede
componer las operaciones de apertura y cierre. OrquideaJAI permite solo la morfología
matemática binaria, por lo que las imágenes a operar morfológicamente se deberán antes
binarizar.
De manera simple se pueden considerar los objetos formados por anillos de píxeles. La operación
de erosión consiste en la eliminación del anillo superficial de un objeto. Del mismo modo se
entiende la dilatación como la incorporación de una fila marginal de píxeles a los objetos de una
imagen binaria. En ambas operaciones se siguen los mismos criterios para su aplicación.
El criterio más simple para la erosión consiste en la búsqueda de los píxeles marginales con valor
lógico VERDADERO que tenga un vecino con valor lógico FALSO; la erosión se produce cuando los
pixeles marginales cambian su valor lógico de VERDADERO a FALSO.
Aplicando un criterio semejante para la dilatación, se
buscan los píxeles vecinos a la línea marginal del objeto
que tengan un valor lógico FALSO y se cambia su valor
de FALSO a VERDADERO. En la Figura 3.4 se ilustra la
Figura 3.4 complementariedad de las operaciones de erosión y
dilatación.
La operación de erosión produce la disminución del área de la imagen y la dilatación produce el
incremento de la misma. Pero, además, ambas operaciones producen importante cambios en las
regiones delgadas de los objetos, cambiando su perímetro y su forma, así como el número de
agujeros que contenga el objeto; una dilatación hace crecer el objeto por su periferia, a la vez que
rellena los agujeros de pequeño tamaño.
Las operaciones de erosión y dilatación pueden combinarse con el fin de restaurar, en lo posible,
las adiciones o disminuciones de los píxeles periféricos tras la correspondiente operación contraria.
Sin embargo, no siempre se pueden reconstruir todos los píxeles periféricos con una dilatación tras
una erosión.
Se conoce como apertura la operación que encadena una erosión seguida de una dilatación. Y se
conoce una operación de cierre a la que encadena una operación de dilatación seguida de una
14
erosión. Al igual que las operaciones de erosión y
dilatación, las de apertura y cierre se pueden realizar
repetidamente sobre una misma binaria. En la Figura 3.5 se
ilustra un ejemplo de una dilatación realizada con
OrquideaJAI, en donde se observa como se ensancharon
Imagen Dilatación de la Imagen
las líneas. El proceso que se debe seguir es el mismo que
Figura 3.5
para las operaciones booleanas.
15
4
TRANSFORMADA
DE FOURIER DE UNA IMAGEN
Fourier:
∞ ∞
F (k x , k y ) = ∫ ∫ f (x, y )exp[ j (k
− ∞− ∞
x ]
x + k y y ) dxdy
∞ ∞
f ( x, y ) =
1
[ ]
F (k x , k y )exp − j (k x x + k y y ) dk x dk y
(2π )2 −∫∞−∫∞
F (k x , k y ) = Re(k x , k y ) + j Im(k x , k y )
[
F (k x , k y ) = Re 2 (k x , k y ) + Im 2 (k x , k y ) ] 1
2
y su fase es,
16
⎡ Im(k x , k y )⎤
ϕ (k x , k y ) = tan −1 ⎢ ⎥
⎢⎣ Re(k x , k y )⎥⎦
P (k x , k y ) = F (k x , k y )
2
Se debe anotar que k x , k y son las denominada frecuencias angulares espaciales y f x , f y son
la frecuencias espaciales,
kx = 2 π fx ky = 2π fy .
1 1
λx = λy =
fx fy
una pantalla; en todo caso, presumiblemente hay alguna función I ( x , y ) que asigna un valor de I
a cada punto de la imagen. Para simplificar un poco las cosas, supóngase que se explora a lo largo
partir de funciones armónicas usando técnicas del análisis de Fourier. En este caso, la función es
muy complicada y se necesitarán muchos términos para representarla adecuadamente. Explorando
trazada en la figura 4.1.c y la cual está formada por una serie de pulsos cuadrados igualmente
17
espaciados. En la figura 4.1.d se muestran esquemáticamente algunas componentes de Fourier. Si
los máximos en 4.1.c están separados centro a centro, por ejemplo, por intervalos de 1 cm., el
periodo espacial fundamental es igual 1 cm. por ciclo o su recíproco, que es la frecuencia espacial
fundamental, igual un ciclo por cm.
De modo muy general se puede transformar la información asociada con cualquier línea de
exploración en una serie de funciones sinusoidales de amplitud y frecuencia espacial apropiadas. Si
la escena es periódica como una escena por ejemplo de baldosas (Figura 4.2), las componentes de
Fourier serán elementos de una serie (serie de Fourier), de lo contrario serán elementos de la
integral de Fourier y corresponderá a la transformada de Fourier. De esta forma la información de
18
una escena bidimensional se podrá codificar por la respectiva transformada de Fourier
bidimensional.
La Figura 4.2 si fuera infinita en extensión sería periódica con período espacial
2L, y se podría representar como una serie de Fourier bidimensional. El hecho
de ser finita implica que su representación se debe realizar con la transformada
de Fourier bidimensional.
Figura 4 .2
Figura 4.3
armónicas,
[
F ( f x , f y ) exp − j 2π ( f x x + f y y ) ]
es decir,
∞ ∞
f ( x, y ) = ∫ ∫ F(f x [ ]
, f y ) exp − j 2π ( f x x + f y y ) df x df y
− ∞− ∞
Es interesante anotar que los armónicos de frecuencias espaciales altas son los responsables de los
detalles de la imagen (zonas de variaciones bruscas en los niveles de gris –de intensidad– de la
imagen) y los armónicos de baja frecuencia espacial son los responsables de las zonas de la imagen
con niveles de gris más o menos homogéneos.
19
propiedades para la TF pueden ser extendidas a la DFT, como consecuencia directa de que la DFT
es simplemente un caso especial de la TF.
Al trabajar con imágenes digitales, no nos posibilita manipular funciones continuas, sino que se
debe trabajar con un número finito de muestras discretas. Estas muestras son los píxeles que
componen la imagen. El análisis computarizado de imágenes requiere la DFT.
La forma matemática de la DFT directa es,
M −1 N −1
⎡ ⎛ u v ⎞⎤
F (u, v ) = ∑∑ f (x, y ) exp⎢− j 2π ⎜⎝ M x + N y ⎟⎠⎥
1
MN x =0 y =0 ⎣ ⎦
M −1 N −1
⎡ ⎛ x y ⎞⎤
f ( x, y ) = ∑∑ F (u, v ) exp⎢ j 2π ⎜⎝ M u + N v ⎟⎠⎥
u =0 v =0 ⎣ ⎦
Cuando M = N , algunas de las expresiones anteriores pueden expresarse de forma más sencilla.
En particular la transformadas de Fourier directa quedaría como,
N −1 N −1
F (u , v ) = ∑∑ f (x, y ) exp[− j 2π (ux + vy ) / N ]
1
N x =0 y =0
N −1 N −1
f ( x, y ) = ∑∑ F (u, v ) exp[ j 2π (xu + yv ) / N ]
1
N u =0 v =0
Existe un algoritmo computacional que permite el cálculo más rápido de la DFT y es conocido con el
nombre de la transformada rápida de Fourier (FFT).
20
4.4 Visualización del espectro
Hay que superar algunas dificultades al mostrar el espectro de frecuencia de una imagen. La
primera surge debido al amplio rango dinámico de los datos resultantes de la transformada discreta
de Fourier. En la imagen original el valor de un píxel (en una imagen monocromática) será un
número entero entre [0,255], representando el grado de intensidad, pero en la imagen que
representa el espectro de Fourier los valores de los píxeles son números en punto flotante y no
están limitados a los valores de [0,255]. Estos datos deben ser escalados de nuevo para
transformarlos en un formato visible, de forma que no exceda la capacidad del dispositivo de
visualización. Una cuantización lineal simple no proporciona siempre los mejores resultados, pues
muchas veces se pierden los puntos de baja amplitud. El término cero de la frecuencia es
generalmente el componente simple más grande, es también el punto menos interesante al
examinar el espectro de la imagen (este es el denominado componente de “corriente directa” –
DC– del espectro y es el responsable del fondo de la imagen, “background”). Una solución común a
este problema es representar el logaritmo del espectro, mejor que el espectro por sí mismo. La
función que se aplica a la imagen del espectro para su representación es una función de
compresión de rango dinámico. La expresión matemática genérica de esta transformación para
el caso de rangos muy grandes es:
D(u , v ) = c log[1 + F (u , v ) ]
255
c=
log(1 + R )
La suma de 1 al denominador, asegura que el valor 0 del píxel no causa problemas en el cálculo del
logaritmo.
Desde que científicos e ingenieros se adaptaron al uso del sistema de coordenadas cartesiano, se
prefiere mostrar los espectros de la imagen de esa forma. Un espectro inalterado de la imagen
tendrá el componente cero visualizado en la esquina superior izquierda de la imagen, la cual
corresponde al píxel cero. La forma habitual de mostrar los espectros de la imagen es cambiando
de posición la imagen tanto horizontalmente como verticalmente, desplazándola la mitad de la
anchura y la altura de la imagen, de forma que el origen de coordenadas se encuentre en el centro
21
de la imagen. Todos los espectros que se muestran en las aplicaciones se exhiben de esta manera
convencional. Este formato es conocido como ordenado (en oposición con desordenado).
OrquideaJAI permite obtener fácilmente la transformada discreta de Fourier asegurando
simultáneamente la compresión del rango dinámico para proporcionar al usuario una buena
visibilidad tanto de la magnitud del espectro de Fourier, como de su fase y de su potencia. Para
hacer esta operación basta abrir la calculadora (haciendo clic en el icono ubicado en la barra de
herramientas) y en esta seleccionar el panel correspondiente a Transformadas. Haciendo clic en
el botón DFT o IDFT se puede acceder a las Ventanas/Diálogo correspondientes para realizar la
transformadas discretas de Fourier directa e inversa respectivamente. El resultado OrquideaJAI lo
entrega en niveles de gris, así la imagen original sea a color.
En la Figura 4.4 se ilustra varias imágenes (columna izquierda), la magnitud del espectro de Fourier
(columna central) y la fase del espectro (columna derecha), todo obtenido con OrquideaJAI.
22
cuando una señal es de longitud finita, la información de la fase simplemente basta para reconstruir
una señal dentro de un factor de escala. Estas afirmaciones son válidas tanto para señales
unidimensionales como multidimensionales.
Una imagen de sólo fase tiene una transformada de Fourier cuya fase es igual a la fase de la señal
original y módulo unidad, o tal vez un módulo promediado entre un conjunto de imágenes. Muchas
de las características de la imagen original son identificables claramente en la imagen de sólo fase,
pero no ocurre lo mismo en la imagen de sólo módulo (aquella cuya transformada de Fourier tiene
como módulo el de la imagen original, y fase nula).
Un experimento que ilustra claramente la observación de que las señales sólo de fase capturan
mayor inteligibilidad de la señal que las de sólo módulo es el experimento de Oppenheim, que
consiste en reproducir una imagen combinando el módulo de una imagen fuente con la fase de otra
imagen fuente y observando cuál información de las dos imágenes fuente predomina en la imagen
resultante. Obviamente los pasos a seguir son los siguientes:
23
Propiedad de modulación
La multiplicación de una señal por otra puede considerarse como el empleo de una señal para
escalar o modular la amplitud de otra, y por lo tanto, la multiplicación de las dos señales se refiere
frecuentemente como modulación en amplitud. Esta operación en el dominio de las frecuencias
corresponde a la convolución de las transformadas de Fourier de las señales (ver unidad 5). Es
decir, en el caso de imágenes, el producto de ellas (modulación en el dominio espacial)
corresponde a la convolución de sus trasnformdas de Fourier en el dominio de las frecuencias. Esta
es la propiedad de modulación, y matemáticamente se expresa así,
f ( x, y )g ( x, y ) ⇔ F (u , v ) ⊗ G (u , v )
Un caso muy especial es cuando una imagen es modulada por una rejilla sinusoidal (imagen que
tiene una distribución sinusoidal de intensidades). El módulo de la transformada de Fourier de la
distribución sinusoidal de intensidades corresponde a tres picos, casi deltas de Dirac (están
ensanchados y más con apariencia de senos circulares, debido al efecto de ventaneo); un pico en el
centro del plano de frecuencias y los otros dos simétricamente ubicados a lado y lado de este pico y
a una “distancia” igual a la frecuencia de la rejilla; por lo tanto, debido a la propiedad de tamizado
de la función delta, el espectro resultante de la modulación hace la replica del espectro de la
imagen (tres espectros semejantes) centrados en cada uno de los picos del espectro de la rejilla
(“reproducción del espectro”). Esto se observa claramente en la Figura 4.6.
24
Imagen 2: Red sinusoidal generada con Módulo de la transformada de Fourier de la imagen 2. Son
OrquideaJAI, empleando su módulo Generar aproximadamente tres deltas de Dirac (están ensanchados por el
de la calculadora en el modo Armónico, efecto de ventana)
f 2 (x, y ) = 255 sen 2 [2π (0.05 x + 0.05 y )] F2 (u , v ) = 255π [δ (u − 2π (0.05), v − 2π (0.05) ) +
+ 2δ (u , v ) + δ (u + 2π (0.05), v + 2π (0.05) )]
A la derecha se encuentra la “topografía” del Módulo de la
transformada
Propiedad de rotación
Si la imagen se rota un ángulo ϕ su transformada de Fourier
Propiedad de traslación
Un desplazamiento en la imagen no afecta el módulo de la transformada de Fourier. Esto se debe a
que,
25
f ( x − x0 , y − y 0 ) ⇔ F (u, v ) exp[− j 2π (ux0 + vy 0 ) / N ]
F (u , v ) exp[− j 2π (ux0 + vy 0 ) / N ] = F (u , v )
26
convencionalismo ampliamente utilizado). Dentro de este intervalo, cuantos más valores se puedan
discriminar mayor cantidad de matices se podrán representar.
La pregunta obvia que surge al hablar de Muestreo y Cuantización es: ¿Cuáles son los valores
adecuados de número de muestras y número de niveles distinguibles? La respuesta, también obvia,
es que lo mejor es tener el mayor número posible de muestras (para obtener la mejor
aproximación a la función imagen continua) y el mayor número posible de niveles (para poder
percibir todos los detalles). Sin embargo, esta conclusión hay que analizarla con cuidado pues
cuantas más muestras y más niveles, más datos a procesar por el computador y más tiempo de
computación necesario para obtener los resultados. Se puede analizar matemáticamente cuál es el
mínimo de estos valores. En cuanto al muestreo, el Teorema de Whitaker-Shannon (Teorema del
Muestreo) obliga a que el intervalo entre muestras sea menor o igual a la mitad del menor detalle
de interés. Para la cuantización no hay una ley matemática y queda a expensas del problema
concreto.
El muestreo ideal se puede realizar con una colección de deltas de Dirac equiespaciados en las
direcciones x , y , donde las longitudes de las separaciones entre los deltas se denominan períodos
⎡ N −1 M −1 ⎤
f ( x, y )muestreada = f ( x, y )s ( x, y ) = f ( x, y )⎢∑ ∑ δ ( x − n∆x, y − m∆y )⎥
⎣ n =0 m =0 ⎦
27
Imagen Original “Topografía’ de la imagen original
(∆x )−1 , (∆y )−1 . Esta es simplemente una aplicación del teorema de la convolución (este teorema
y la operación de convolución, se tratarán en detalle en la unidad 5).
⎡ 1 N −1 M −1
F (u, v )muestreada = F (u, v ) ⊗ S (u , v ) = F (u, v ) ⊗ ⎢ ∑ ∑ ( )⎤
δ u − n(∆x )−1 , v − m(∆y )−1 ⎥
⎣ ∆x∆y n =0 m =0 ⎦
F (u, v )muestreada =
1 N −1 M −1
∑ ∑
∆x∆y n =0 m =0
(
F u − n(∆x ) , v − m(∆y )
−1 −1
)
28
Imagen Original Módulo de la Transformada de Fourier de la Imagen y su
“topografía”
29
que es precisamente la colección de espectros a que se hacía referencia en el párrafo anterior. En
la Figura 4.11 se ilustra este procedimiento. Si los espectros individuales no se solapan filtrando
uno sólo de ellos es posible recuperar la imagen mediante la transformada de Fourier inversa, lo
que demostraría que bastaría con esa colección de muestras para guardar la información de la
imagen original. En caso de solapasen (aliasing) no sería posible esto y imagen recuperada estaría
defectuosa respecto a la original o incluso irreconocible. Esto último sucedería si las frecuencias de
muestreo, (∆x )−1 y (∆y )−1 , estuviera por debajo del doble de la frecuencia de corte (frecuencia
Es interesante anotar que la DFT (Transformada Discreta de Fourier) se aprovecha del teorema de
muestreo para realizar la TF (Transformada de Fourier).
Algo más sobre la frecuencia de muestreo de una imagen digital. Manejo de equipo
óptico
Según el teorema del muestreo de Shannon, para preservar la resolución espacial de la imagen
original, el dispositivo que digitaliza la imagen debe utilizar un intervalo de muestreo que no sea
mayor de la mitad del tamaño del detalle más pequeño de la imagen óptica. Esto es equivalente a
adquirir muestras en dos veces la frecuencia espacial más alta contenida en la imagen, regla
conocida criterio de Nyquist. Si el límite de Abbe de la resolución en la imagen óptica es
aproximadamente 0,22 micrómetros, el digitalizador debe muestrear en el espécimen a intervalos
de 0,11 micrómetros o menos. Un digitalizador que muestrea 512 puntos por línea de exploración
horizontal, tendría un campo visual horizontal máximo de aproximadamente 56 micrómetros (512 x
0,11). Un número creciente de muestras digitales por línea de exploración sobre el espécimen, que
se podrían lograr por una ampliación óptica demasiado grande, no daría más información espacial;
simplemente la imagen se habrá sobremuestreado. Esto generalmente se hace intencionalmente
para adquirir valores redundantes y asegurar la fidelidad de la imagen exhibida. En la mayoría de
los casos, para imágenes de alta resolución se asegura un muestreo entre 2,5 a 3 veces la
frecuencia de Nyquist.
30
5
SEÑALES Y SISTEMAS LINEALES
BIDIMENSIONALES
FUNDAMENTOS
cada uno con un nivel de gris determinado por f ( x, y ) . En otras palabras la imagen se puede
representar como una colección de deltas de Dirac (impulsos) modulados por f ( x, y ) . Para el caso
M −1 N −1
f ( x, y ) = ∑∑ f (x m , y n )δ ( x − x m , y − y n )
m =0 n =0
imagen f ( x, y )
Fig. 5.1
31
Se puede observar que los deltas de Dirac (los impulsos) debidamente desplazados (“peinilla”) son
una base para generar las imágenes.
de la imagen,
M −1N −1
⎡ ⎛ u v ⎞⎤
f (x , y ) = ∑ ∑ F (u ,v )exp⎢⎣ j 2π ⎜⎝ M x + N y ⎟⎠⎥⎦ x = 0 , 1, 2 ,..., M − 1; y = 0 , 1, 2 ,..., N − 1
m =0 n =0
siendo,
1 M −1N −1
⎡ ⎛ u v ⎞⎤
F (u ,v ) = ∑ ∑ f (x , y )exp ⎢⎣− j 2π ⎜⎝ M x + N y ⎟⎠⎥⎦ u = 0 , 1, 2 ,..., M − 1; v = 0 , 1, 2 ,..., N − 1
MN x =0 y =0
es decir f ( x, y ) se puede expresar como una combinación lineal de ondas planas de la forma,
⎡ ⎛ u v ⎞⎤
exp ⎢ j 2π ⎜ x + y ⎟⎥
⎣ ⎝M N ⎠⎦
cuyas amplitudes y contribución de fase para cada frecuencia están dadas por la transformada de
Fourier, F (u , v ) :
F (u , v ) = F (u , v ) exp[iϕ (u , v )]
M −1 N −1
⎡ ⎛ u v ⎞⎤
por tanto, f ( x, y ) = ∑∑ F (u, v )exp⎢ j 2π ⎜⎝ M x + N y ⎟⎠⎥ es una sumatoria de superposición.
m=0 n=0 ⎣ ⎦
Esto se ilustra en la Figura 5.2,
Figura 5.2
32
Se puede observar que las ondas planas con frecuencias espaciales correspondientes son una base
para generar las imágenes.
de entrada f ( x, y ) , pasando a través de algún sistema óptico S ( x, y ) (por ejemplo una lente, o
imágenes digitales), el objeto será una imagen de entrada f ( x, y ) , el sistema será un proceso de
Figura 5.3
Si el sistema es Lineal e Invariante bajo desplazamiento (LSI), debe cumplir las relaciones de
linealidad e invarianza. La condición de linealidad expresa que sí g1 ( x, y ) es la señal generada por
S (x, y ) al transformar f1 ( x, y ) , g 2 ( x, y ) es la señal generada por S (x, y ) al transformar
f 2 ( x, y ) y así sucesivamente, es decir gk (x, y) = S{ fk (x, y)} , y además sí f ( x , y ) , al ser procesada
por sistema S ( x, y ) da como resultado g(x, y) , es decir, g(x, y) = S{ f (x, y)} ,entonces si f ( x, y ) se
puede expresar como una combinación lineal de los f i ( x, y ) , es decir,
n
f ( x, y ) = a1 f 1 ( x, y ) + a 2 f 2 ( x, y ) + ....a k f n ( x, y ) = ∑ a k f k ( x, y )
k =1
n
g ( x, y ) = a1 g1 ( x, y ) + a 2 g 2 ( x, y ) + ... + a n g n ( x, y ) = ∑ a k g k ( x, y )
k =1
33
g ( x − m, y − n ) = S { f ( x − m, y − n )}
es decir un desplazamiento de la señal de entrada (en nuestro caso, imagen original) causa el
mismo desplazamiento en la señal de salida (en nuestro caso, imagen transformada por el proceso
digital S ( x, y ) ), sin ninguna alteración sobre su forma funcional (es decir, sin deformación).
M −1 N −1
g ( x, y ) = ∑∑ f (x m , y n )h( x − x m , y − y n )
m =0 n =0
h( x, y ) = S ( x, y ){δ ( x, y )}
gráficamente,
Figura 5.4
g ( x, y ) = f ( x, y ) ⊗ h ( x , y )
34
5.2.3 El teorema de Convolución
g ( x, y ) = h( x, y ) ⊗ f ( x, y ) ⇔ G (u , v ) = H (u , v )F (u , v )
imagen deseada,
g ( x, y ) = ℑ −1 [H (u, v )F (u, v )]
presente resaltada alguna característica de f ( x, y ) . Por ejemplo, se pueden acentuar los bordes
[ ]
y como ℑ δ ( x, y ) = 1 se deduce que,
G (u , v ) = H (u , v )
35
la teoría de sistemas lineales: un sistema lineal queda completamente determinado por la respuesta
a un impulso, h( x, y ) .
g ( x, y ) = f ( x, y ) ⊗ h ( x, y )
M −1 N −1
g ( x, y ) = ∑∑ f (x m , y n )h( x − x m , y − y n )
m =0 n =0
La convolución es simplemente una suma ponderada de píxeles en el vecindario del píxel fuente.
Los pesos son determinados por una pequeña matriz llamada máscara de convolución, que
determina unos coeficientes a aplicar sobre los píxeles de una determinada área. Las dimensiones
de la matriz son normalmente impares e iguales, de forma que se pueda determinar el centro de la
matriz cuadrada. La posición del valor central se corresponde con la posición del píxel de salida.
Una ventana deslizante, llamada ventana de convolución, se centra en cada píxel de una imagen de
entrada y genera un nuevo valor para el píxel de salida. Para aplicar la máscara a una zona se
multiplican los valores de los puntos que rodean al píxel sobre el que se está actuando (píxel
central) por su correspondiente entrada o coeficiente en la máscara y luego se suman esos
productos. El resultado es el nuevo valor para el píxel central, tal y como se puede ver en la Figura
5.5. El proceso es bastante repetitivo, algo costoso en tiempo pues depende del tamaño de la
imagen, pero sencillo y eficaz.
36
Es muy importante colocar los nuevos píxeles en una nueva imagen. Si el recién generado píxel
reemplaza al antiguo píxel, éste será usado para calcular el valor del siguiente píxel.
Figura 5.5
Figura 5.7
37
• Se hace clic en el botón Personal del panel
izquierdo, y se abre la Ventana/Diálogo de la Figura
5.8 correspondiente a Filtros Espaciales.
• Se selecciona Paso-Bajo 3x3 y en el arreglo matricial
(resaltado) se escriben los coeficientes del filtro de
la Figura 5.6. Se debe tener en cuenta que
Figura 5.8
OrquideaJAI divide el valor de los coeficientes
introducidos en el arreglo por el número que es indicado en el subpanel superior derecho,
el cual está etiquetado como Divisor del Filtro.
• Al Aceptar se obtiene la imagen de la Figura 5.9
Figura 5.9
Figura 5.10
g ( x, y ) = f ( x, y ) ⊗ h ( x, y )
38
Figura 5.11
Figura 5.12 coeficientes de convolución que sobresalen de los bordes? Ver Figura 5.12
• La primera solución es tratar las celdas vacías en la ventana de convolución como ceros. Esto
se conoce como zero-padding. Es fácil de realizar pero no es una buena idea si los bordes de la
imagen resultante son tan importantes como el resto de la imagen.
• La siguiente solución es empezar la convolución en la primera posición donde la ventana no
sobresalga de la imagen. Si la máscara de convolución es de tamaño 3x3, se empezaría
convolucionando con el píxel en (1,1) en vez del píxel en (0,0). Este método es sencillo de
implementar. En la imagen de salida, los pixeles que forman el borde de lo que se ha
convolucionado son repetidos para crear una imagen con el mismo tamaño que la imagen de
entrada.
• Otros métodos amplían la imagen antes de convolucionarla. Una forma de hacerlo es duplicar
los bordes. Usando una máscara 3x3, se copiarían las filas superior e inferior, así como las
columnas izquierda y derecha.
• El otro método es “envolver” la imagen, es decir, considerar como píxel contiguo al del borde
izquierdo, el píxel del borde derecho y viceversa, así como con los del borde superior e inferior
En la unidad 7 se utilizará la técnica de convolución para aplicar filtros espaciales lineales a las
imágenes con el fin de lograr diferentes resultados.
39
6
MEJORA DE LA IMAGEN
DOMINIO ESPACIAL
Operaciones Punto a Punto
El principal objetivo de las técnicas de mejora es procesar una imagen de forma que resulte más
adecuada que la original para una aplicación específica. Las técnicas presentadas en esta unidad,
pertenecen a dos categorías: métodos en el dominio espacial, es decir, se actúa sobre el propio
g ( x, y ) = T [ f ( x, y )]
s = T (r )
40
valor de gris de cada uno de los píxeles. Se pueden agrupar en dos tipos fundamentales:
modificaciones del histograma de gris y operaciones aritméticas con las imágenes.
Es decir, la intensidad en cada píxel se cambia por un valor equivalente a 255 menos su valor
actual,
s = T (r ) = 255 − r
En al Figura 6.2 se ilustra un ejemplo. Esto se logra con OrquideaJAI abriendo el popmenú (clic
derecho del ratón cuando el cursos esta sobre la imagen) del panel correspondiente a la imagen a
la cual se le desea obtener el negativo. Seguidamente se hace clic en el item Negativo.
41
6.1.2 Compresión del rango dinámico
A veces el rango dinámico de una imagen procesada excede ampliamente la capacidad del
dispositivo de presentación, en cuyo caso sólo las partes más brillantes de la imagen aparecerán en
la pantalla. Eso mismo ocurre frecuentemente cuando se trata de registrar la imagen en una
película. Un ejemplo clásico de este problema es la visualización del espectro de Fourier de una
imagen (ver sección 4.4). Una manera efectiva de comprimir el rango dinámico de los valores de
cada píxel consiste en realizar la siguiente transformación de intensidad,
s = c log(1 + r )
Mediante el escalado se puede lograr mejorar el contraste de la imagen. Sin embargo se debe
aclarar que un aumento de contraste no revelará nunca una información nueva que no esté
42
contenida en la imagen. El contraste solamente presentará la misma información existente en los
datos originales, pero de una forma más clara visualmente para el usuario.
6.1.4 Normalización del histograma
La normalización del histograma es una forma particular de estiramiento de éste, con el que se
pretende que los valores de gris de la imagen lleguen a ocupar el rango máximo de niveles, esto
es, entre 0 y 255. Se trata de buscar los valores menores y mayores del histograma de la imagen y
llevarlos a 0 y 255 respectivamente. Es obvio que, si existe, aunque sea solo uno, de valor 0 y otro
de valor 255, la operación de normalizado no tendrá efecto. Esto se logra con OrquideaJAI
abriendo el popmenú del panel correspondiente a la imagen que se desea mejorar mediante este
mecanismo. Seguidamente se hace clic en el item Variar el Histograma, apareciendo una
Ventana/Diálogo tal y como se ilustra en la Figura 6.3. Luego se hace clic en Normalizar. En la
Figura 6.5 se da un ejemplo.
La normalización del histograma es un procedimiento enormemente útil en las ocasiones en las que
las imágenes tengan poco contraste (lo que supone que presentan los niveles de gris muy
agrupados), porque el “estirado” del histograma incrementa el contraste y permite la apreciación de
los detalles.
6.1.5 Ecualización del Histograma
La ecualización distribuye los niveles de gris para que queden repartidos de una manera más
uniforme, consiguiendo un histograma uniforme, mejorando de esta forma el contraste de la
imagen. Esto se logra con OrquideaJAI abriendo el popmenú del panel correspondiente a la
imagen que se desea mejorar. Seguidamente se hace clic en el item Variar el Histograma,
apareciendo una Ventana/Diálogo tal y como se ilustra en la Figura 6.3. Luego se hace clic en
Ecualizar. Ver la ilustración de la Figura 6.6.
43
Imagen original (izquierda) y su histograma. Imagen y su histograma ecualizado
Figura 6.6
Mientras que la normalización reparte de manera proporcional los valores intermedios en el nuevo
rango de salida, en la ecualización se distribuyen los pixeles de manera que cada clase tenga
frecuencias semejantes de valores de gris.
6.1.6 Binarización
Dada una imagen, es posible convertirla en una imagen que
tenga solo dos tonos de gris: el nivel 0 (negro) y el nivel 255
(blanco). A este proceso se le denomina binarización. Esto se
logra con OrquideaJAI abriendo el popmenú del panel
Imagen Imagen Binarizada correspondiente a la imagen que se desea binarizar.
Figura 6.7
Seguidamente se hace clic en el item Binarizar. Ver Figura 6.7
44
Imagen Original Imagen Original sumándole una la constante: 50
Imagen Original restándole una la constante: 50 Imagen Original multiplicada por la constante: 2
Figura 6.8
45
7
MEJORA DE LA IMAGEN
DOMINIO ESPACIAL
Operaciones de Área (Filtros Espaciales)
7.1 Fundamentos
El empleo de máscaras espaciales (ver sección 5.2.4) para el procesamiento de las imágenes se
denomina frecuentemente, filtrado espacial (frente al filtrado en el dominio de la frecuencia
empleando la transformada de Fourier), y las propias máscaras se denominan filtros espaciales. El
término espacial se refiere al hecho de que el filtro se aplica directamente a los pixeles que
representan a la imagen y no a una transformada de la misma, es decir, el nivel de gris de un píxel
se cambia y el nuevo valor se obtiene en función de los valores de los pixeles vecinos.
Los filtros espaciales pueden clasificarse basándose en su linealidad: filtros lineales y filtros
no lineales. A su vez los filtros lineales pueden
clasificarse como: filtros paso bajo que atenúan las
zonas de alto contraste (bordes o detalles muy
marcados de la imagen) y alteran muy poco las
zonas de bajo contrate, estas zonas son las
representativas de las regiones lentamente
Figura 7.1 Arriba: secciones de filtros en frecuencia con variables de la imagen, por lo tanto el contraste y
simetría circular. Abajo: secciones correspondientes a
filtros espaciales. (a) Filtro paso bajo. (b) Filtro paso alto. la intensidad de la imagen quedaran uniformizados
(c) Filtro paso banda
después del filtrado, eliminando en algo el ruido de
fondo. filtros paso alto que atenúan las zonas de bajo contraste y alteran muy poco las zonas de
alto contrate, resaltándose los borde y los detalles muy marcados o finos de la imagen y filtros paso
banda que afectan zonas intermedias de contraste. La forma de operar de los filtros lineales es por
medio de la utilización de máscaras que recorren toda la imagen operando cada vez sobre los
píxeles que se encuadran en la región de la imagen original que coincide con la máscara y el
resultado se obtiene mediante una computación (suma de convolución) entre los píxeles originales
y los diferentes coeficientes de las máscaras (ver sección 5.2.4).
Los filtros espaciales no lineales también operan sobre entornos. Sin embargo, su operación se
basa directamente en los valores de los píxeles en el entorno en consideración. Unos ejemplos de
46
filtros no lineales habituales son los filtros mínimo, máximo y de mediana que son conocidos como
filtros de rango. La actual versión de OrquideaJAI (versión 1.0) no incluye estos filtros.
Otra clasificación de los filtros espaciales puede hacerse basándose en su finalidad, y así se tienen
los filtros de realce (Sharpening) para eliminar zonas borrosas o filtros de suavizado
(Smoothing) para difuminar la imagen. También se tienen los filtros diferenciales que se
caracterizan por el tipo de máscaras (Laplaciano, Prewitt, Sobel, etc.), y se utilizan para la
detección de bordes. El proceso de detección de bordes se basa en realizar un incremento del
contraste en las zonas donde hay una mayor diferencia entre las intensidades, y en una reducción
de éste donde tenemos poca variación de intensidad. OrquideaJAI tiene disponibles los siguientes
filtros: Media, Gauss, Sharpen y Laplaciano.
Los filtros lineales consisten en máscaras h( x, y ) que se convolucionan con la imagen original
g ( x, y ) = f ( x, y ) ⊗ h( x, y )
47
El suavizado o filtrado espacial paso bajo borra los detalles más finos de una imagen, es decir,
conlleva una atenuación de las altas frecuencias (zonas de altos contrastes), mientras se mantienen
las bajas y medias frecuencias (las zonas de bajo e intermedio contraste). Tiene un buen número
de aplicaciones: algunas veces se emplea para simular una cámara desenfocada, o para restar
énfasis a un fondo ocultando algo el ruido de fondo (background).
Las máscaras de los filtros paso bajo deben tener todos sus coeficientes positivos y la
suma de ellos debe estar normalizada a uno. Normalmente el tamaño de la máscara (3x3, 5x5,
7x7,…) se toma en función de la cantidad de suavizado que se quiera. En este caso la visualización
del resultado es uno de los mejores métodos para saber si se ha elegido el tamaño adecuado o no.
Los tres principales filtros de suavizado son: el de la media, el gaussiano y el mediana. Los dos
primeros son lineales. OrquideaJAI dispone de los siguientes Filtros Pasa-Baja: Media 3x3, Media
5x5, Media 7x7, Gauss 1, Gauss 2, Gauss 3 y Gauss 4. Los coeficientes de estos filtros se presentan
en la Tabla 7.1.
De forma general, el arreglo matricial de un filtro de la media de dimensiones NxN, tiene todos los
elementos iguales a 1. Por lo tanto al aplicar el filtro se termina por asignar al píxel central de la
imagen filtrada el valor correspondiente a la media aritmética del valor de gris de los NxN pixeles
determinados de la “submatriz” máscara correspondiente
⎡1 1 1 1 1 1 1⎤
⎡1 1 1 1 1⎤ ⎢1 1 1 1 1 1 1⎥⎥
⎢1 ⎢
⎡1 1 1⎤ 1 1 1 1⎥⎥ ⎢1 1 1 1 1 1 1⎥
1 ⎢ 1 ⎢ ⎥
h( x, y ) = ⎢⎢1 1 1⎥⎥ h( x, y ) = h ( x, y ) =
1
⎢1 1 1 1 1⎥ 1 1 1 1 1 1 1⎥
9 25 ⎢ ⎥ 49 ⎢
⎣⎢1 1 1⎥⎦ ⎢1 1 1 1 1 1 1⎥
⎢1 1 1 1 1⎥
⎢ ⎥
⎢⎣1 1 1 1 1⎥⎦ ⎢1 1 1 1 1 1 1⎥
⎢1 1 1 1 1 1 1⎥⎦
⎣
Media 3x3 Media 5x5 Media 3x3
⎡1 2 1⎤ ⎡25 50 25⎤ ⎡ 6 25 6 ⎤
h( x, y ) = ⎢2 4 2⎥⎥
1 ⎢ 1 ⎢
50 100 50⎥⎥
1 ⎢
h ( x, y ) = h ( x, y ) = 25 100 25⎥⎥
16 400 ⎢ 224 ⎢
⎢⎣1 2 1⎥⎦ ⎣⎢25 50 25⎥⎦ ⎢⎣ 6 25 6 ⎥⎦
Gauss 4
Tabla 7.1
48
En cuanto al filtro gaussiano, debe su nombre, a la forma como se definen sus coeficientes, los
cuales siguen la forma de una campana de Gauss. El máximo de la distribución coincide con la
media y, de manera simétrica a la derecha y a la izquierda de la media se colocan los valores según
la desviación estándar de la distribución.
Para aplicar estos filtros con OrquideaJAI, se debe abrir la
calculadora de imágenes, escoger en ella el panel correspondiente
a Filtros y se hace clic en el botón Paso Bajo del subpanel
etiquetado como Filtros Espaciales, abriéndose de esta forma
una Ventana/Diálogo como se ilustra en la Figura 7.2 , en la cual
se selecciona el filtro deseado. Se debe observar que como el
Figura 7.2
objetivo principal de OrquideaJAI, es el de servir como
herramienta de enseñanza, el software hace visible los coeficientes de los filtros.
En el ejemplo de la Figura 7.2 se escogió el filtro Media
7x7 y se obtuvo el resultado ilustrado en la Figura 7.3. Se
observa claramente que el efecto del filtro fue el de
difuminar la imagen original (una especie de efecto de
desenfoque de cámara).
Imagen Original Imagen Filtrada
Figura 7.3
49
⎡ 0 −1 0 ⎤ ⎡− 1 − 1 − 1⎤ ⎡ − 1 − 2 − 1⎤
h( x, y ) = ⎢⎢− 1 5 − 1⎥⎥ h( x, y ) = ⎢⎢− 1 9 − 1⎥⎥ h( x, y ) = ⎢⎢− 2 13 − 2⎥⎥
⎣⎢ 0 − 1 0 ⎥⎦ ⎢⎣− 1 − 1 − 1⎥⎦ ⎢⎣ − 1 − 2 − 1⎥⎦
⎡ − 2 − 2 − 2⎤ ⎡− 3 − 3 − 3⎤ ⎡ − 4 − 4 − 4⎤
h( x, y ) = ⎢⎢− 2 17 − 2⎥⎥ h( x, y ) = ⎢⎢− 3 25 − 3⎥⎥ h( x, y ) = ⎢⎢− 4 33 − 4⎥⎥
⎣⎢− 2 − 2 − 2⎥⎦ ⎢⎣− 3 − 3 − 3⎥⎦ ⎣⎢− 4 − 4 − 4⎥⎦
⎡− 1 − 1 − 1 − 1 − 1⎤ ⎡− 2 − 2 − 2 − 2 − 2⎤ ⎡− 1 − 1 − 1 − 1 − 1⎤
⎢− 1 ⎢− 2 − 2 − 2 − 2 − 2⎥⎥
⎢ − 1 − 1 − 1 − 1⎥⎥ ⎢
⎢− 1 − 2 − 2 − 2 − 1⎥⎥
⎢
h ( x, y ) = ⎢ − 1 − 1 26 − 1 − 1⎥ h ( x, y ) = ⎢ − 2 − 2 49 − 2 − 2⎥ h ( x, y ) = ⎢ − 1 − 2 33 − 2 − 1⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢− 1 − 1 − 1 − 1 − 1⎥ ⎢− 2 − 2 − 2 − 2 − 2⎥
⎢− 1 − 2 − 2 − 2 − 1⎥
⎢⎣− 1 − 1 − 1 − 1 − 1⎥⎦ ⎢⎣− 2 − 2 − 2 − 2 − 2⎥⎦ ⎢⎣− 1 − 1 − 1 − 1 − 1⎥⎦
Sharpen 7 Sharpen 8 Sharpen 9
⎡− 8 − 5 − 2 − 5 − 8⎤
⎢− 5 3 9 3 − 5⎥⎥
⎢
h( x, y ) = ⎢− 2 9 33 9 − 2⎥
⎢ ⎥
⎢− 5 3 9 3 − 5⎥
⎢⎣ − 8 − 5 − 2 − 5 − 8 ⎥⎦
Sharpen 10
Tabla 7.2
OrquideaJAI dispone de los siguientes Filtros Pasa-Alta de realce: Sharpen 1, Sharpen 2, Sharpen
3, Sharpen 4, Sharpen 5, Sharpen 6, Sharpen 7, Sharpen 8,
Sharpen 9 y Sharpen 10. Los coeficientes de estos filtros se
presentan en la Tabla 7.2.
Para aplicar estos filtros con OrquideaJAI, se debe abrir la
calculadora de imágenes, escoger en ella el panel correspondiente a
Filtros y se hace clic en el botón Paso Alto del subpanel
etiquetado como Filtros Espaciales, abriéndose de esta forma una
Ventana/Diálogo como se ilustra en la Figura 7.4, en la cual se
Figura 7.4 selecciona el filtro deseado. Allí mismo se pueden observar los
coeficientes de los filtros, esto, con fines didácticos.
50
Imagen Original Imagen Filtrada con sharpen 1 Imagen Filtrada con sharpen 2 Imagen Filtrada con sharpen 10
Figura 7.5
En la Figura 7.5. se ilustra el resultado sobre una imagen después de aplicar los filtros sharpen 1, 2
y 10 de OrquideaJAI.
Uno de los más importantes y sencillos procesos es la detección de bordes. Importante porque
de él se puede empezar a extraer gran información de la imagen, como pueden ser las formas de
los objetos que la componen, y sencillo porque los operadores de detección de bordes son simples
máscaras de convolución. Estos operadores son utilizados en aplicaciones para el reconocimiento
de formas, aplicaciones industriales, militares, etc.
Los filtros utilizados para la detección de bordes son filtros diferenciales, que se basan en la
derivación o diferenciación. Dado que el promediado de los píxeles de una región tiende a
difuminar o suavizar los detalles y bordes de la imagen, y esta operación es análoga a la
integración, es de esperar que la diferenciación tenga el efecto contrario, el de aumentar la nitidez
de la imagen, resaltando los bordes.
OrquideaJAI proporciona el filtro laplaciano. Este se define como una derivada de segundo
orden,
51
⎡− 1 − 1 − 1 − 1 − 1⎤
⎢− 1 − 1 − 1 − 1 − 1⎥⎥
⎡ 0 −1 0 ⎤ ⎡− 1 − 1 − 1⎤ ⎢
h( x, y ) = ⎢⎢− 1 4 − 1⎥⎥ h( x, y ) = ⎢⎢− 1 8 − 1⎥⎥ h( x, y ) = ⎢ − 1 − 1 24 − 1 − 1⎥
⎢⎣ 0 − 1 0 ⎥⎦ ⎢⎣− 1 − 1 − 1⎥⎦ ⎢ ⎥
⎢− 1 − 1 − 1 − 1 − 1⎥
⎢⎣− 1 − 1 − 1 − 1 − 1⎥⎦
Laplaciano 1 Laplaciano 2 Laplaciano 3
Tabla 7.3
Imagen Original Imagen Filtrada con laplaciano 3 abriéndose de esta forma una Ventana/Diálogo
Figura 7.6 como se ilustra en la Figura 7.4, en la cual se
selecciona el filtro deseado. En la Figura 7.6. se ilustra el resultado sobre una imagen después de
aplicar el filtro laplaciano 3 de OrquideaJAI.
52
8
MEJORA DE LA IMAGEN
DOMINIO DE LA FRECUENCIA
una imagen formada por una convolución de una imagen f ( x, y ) y un operador lineal invariante
de posición h( x, y ) , es decir,
g (x , y ) = h (x , y ) ⊗ f (x , )
Entonces, por el teorema de convolución, se cumple la siguiente relación en el dominio de la
frecuencia:
G (u, v ) = H (u, v )F (u, v )
[ ]
de Fourier inversa ( ℑ ) de H (u , v )F (u , v ) , es decir,
−1
g ( x, y ) = ℑ −1 [H (u, v )F (u, v )]
presente resaltada alguna característica de f ( x, y ) . Por ejemplo, se pueden acentuar los bordes
53
Figura 8.1. a. Proceso (filtrado) en el dominio espacial y b. Proceso (filtrado) en el dominio de la frecuencia
Hay muchos tipos de filtros pero la mayoría es una derivación o una combinación de cuatro tipos
básicos: paso bajo, paso alto, paso banda, y banda eliminada. Los filtros paso banda y banda
eliminada se pueden crear por la sustracción apropiada y la adición de las respuestas en frecuencia
de los filtros paso bajo y paso alto. El filtro paso bajo deja pasar frecuencias bajas mientras que
atenúa las frecuencias más altas. Los filtros paso altos atenúan las frecuencias bajas y dejan pasar
frecuencias más altas. Los filtros paso banda permiten una banda específica de frecuencia.
OrquideaJAI dispone de dos filtros ideales, uno pasa alta y uno pasa baja. Para emplearlos siga
este procedimiento:
• Importar la imagen a la que se le desea aplicar el filtro; abrir la calculadora de imágenes.
• Escoger el panel etiquetado Filtros.
• En este panel se hace clic sobre alguno de los dos botones (Paso Alto o Paso Bajo) del
subpanel derecho etiquetado Filtros Frecuenciales.
• Debe aparecer una Ventana/Diálogo, en la cual se debe escoger el número del panel donde
está ubicada la imagen a filtrar y el número del panel donde se va a ubicar la imagen
filtrada.
• Hacer clic en el botón etiquetado Previsualizar (ver Figura 8.2). Se puede graduar el
radio del filtro.
54
Observe que el usuario no se debe preocupar por los pasos 1,
2 y 3 mencionados anteriormente, ya que OrquideaJAI hace
esto automáticamente.
Figura 8.2
Ejemplo 1:
Se tiene la imagen de la Figura 8.3. El objetivo es eliminar las rayas horizontales presentes en ella.
55
Figura 8.3
Figura 8.5
Figura 8.6
56
• Se debe escoger L= 100, H=100, x=128, y=64, Nivel de gris del
fondo=255, Nivel de gris del rectángulo=0, Número del panel donde
se ubicará la imagen Rectángulo generada. Luego se previsualiza. Si
se está satisfecho se acepta y se debe obtener la imagen generada
de la Figura 8.8, Figura 8.8
Figura 8.11
57
• A continuación se debe multiplicar esta imagen con el módulo de la transformada de
Fourier. Sin embargo antes se debe dividir la imagen de la
Figura 8.11 por la constante 255, con el fin de que la
multiplicación por el módulo de la transformada no cambie
los niveles de gris de las regiones de frecuencia que no se
desean filtrar. La resultante de esa última operación se debe
ubicar en una de las celdas de OrquideaJAI. Ahora sí, se
debe proceder a multiplicar esta última imagen con el
Figura 8.12
módulo de la transformada y el resultado se deposita en
otra celda. Todas estas operaciones se hace con el modo Aritmética de la calculadora de
imágenes. El resultado de todas estas operaciones se ilustra en la Figura 8.12,
Figura 8.13
Figura 8.14
Como puede observarse se han eliminado las rayas horizontales. Es obvio que también se ha
distorsionado algo la imagen del fondo, pero nada que no se pueda arreglar haciendo un post-
procesamiento.
Ejemplo 2
58
Interpretación de la transformada de Fourier de una imagen.
En la sección 4.2, se expresa como una imagen se puede expresar como una suma de armónicos, y
se ilustra esto con la Figura 4.3. Con el presente ejemplo se aclarará más este importante
concepto.
En la Figura 8.16 se ilustra una imagen con su
espectro. Siguiendo un proceso similar al del ejemplo
1, se pueden obtener diferentes armónicos de la
imagen a través del filtraje en el domino de la
frecuencia. De esta forma se puede verificar
Imagen Módulo de la Transformada visualmente como cada una de las imágenes
Figura 8.16 obtenidas en estos filtrajes corresponden a
diferentes imágenes sinusoidales que componen la imagen original. Esto se ilustra en la Figura 8.17
para algunos armónicos. Se debe aclarar que en las imágenes armónicas obtenidas se observa algo
de “ruido” por lo que no corresponden exactamente a armónicos planos.
Imagen de frecuencia espacial cero Transformada Filtrada que da origen a la imagen de la izquierda
Un Armónico con frecuencia espacial fy = 0 Transformada Filtrada que da origen a la imagen de la izquierda
Un Armónico con frecuencia espacial fx = 0 Transformada Filtrada que da origen a la imagen de la izquierda
59
Un Armónico con frecuencia espacial f x ≠ 0 y f ≠ 0 Transformada Filtrada que da origen a la imagen de la izquierda
y
Un Armónico con frecuencia espacial f x ≠ 0 y f y ≠ 0 Transformada Filtrada que da origen a la imagen de la izquierda
Figura 8.17
FIN.
60
Bibliografía
61