[Página anterior] [Página siguiente]
A.1 Elección del tamaño del SE
A.2 Generalización del procedimiento
C.1 Rutina principal: Morphological Image Cleaning (MIC)
C.2 Subrutina 2: filtro de suavizado OCCO(I,d)
C.3 Subrutina 3: Procesador de residuales TOPBOT(R,d,f,s)
OCCO(I;Z) = 1/2 *[ ( Iz)z +(Iz )z ]
un filtro que es la media de los píxeles de las apertura-clausura de I y la clausura-apertura de I.
OCCO(I;Z) es aproximadamente suave dependiendo del SE usado y, a diferencia de sus operadores constituyentes, imparcial con respecto al nivel de gris.
- Tamaño del SE, siendo éste su diámetro.
- Elección de usar un plano o una cima curvada.
Dj = Sj-1 - Sj
que es la j-ésima imagen residual.

La experimentación ha demostrado que la binarización
t = f·mRj,
donde f Î [1,2] rinde los mejores resultados para la mayoría de las imágenes. El valor de f es un parámetro libre en algoritmo MIC que por defecto es 1.
Sea XRj una imagen y t un umbral de binarización tal que:
Entonces XRj es la máscara de aquellos píxeles
en Rj que son igual o mayores que el umbral de
binarización.
En general, XRj contendrá muchos 1 aislados (1
rodeados de 0 en un entorno de 3x3) y muchas regiones de sólo dos 1
adjuntos.
Un píxel o una región dos píxeles aislados es común ser
visto por una persona como ruido en lugar de característica. Por lo tanto,
el algoritmo los elimina.
Para la eliminación de píxeles aislados se procede de esta
manera: primero, se aplica un filtro de rango a XRj para
encontrar la localización de todos los entornos de 3x3 de "unos"
aislados; segundo, formar la lógica AND al resultado con XRj.
El
resultado de esto es una máscara de los píxeles en Rj que son
como mínimo tan grandes como el binarizado y están mas cerca como mínimo
de otros dos píxeles en un entorno de 3x3.
Ejemplo1.- Filtro de rango. Si consideramos una
región de 4x4, con parámetro s=1:
(Paso 4 TOPBOT) Imagen binarizada de la imagen
residual:
| 0 | 0 | 0 | 1 |
| 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 0 |
(Paso 5 TOPBOT) Resultado del filtro de
rango aplicado a la imagen binarizada:
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 0 | 1 | 1 | 0 |
| 0 | 0 | 0 | 0 |
El filtro de rango se aplica en cada entorno de
3x3 de la imagen desplazándo éste de izquierda a derecha y de arriba a
abajo.
(Paso 6 TOPBOT) Dilatación del resultado del filtro
de rango:
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
Observaciones: Con valores de s muy pequeños se consigue retener las características de la imagen residual, y con valores de s muy grandes se pierden características de la imagen residual, ya que al final se procede a una máscara con la imagen residual binarizada.
Ejemplo2.- (PASO 7 TOPBOT, funcion
ISODEL)Eliminación de píxeles aislados. Considerar la región 5x5
1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 1 0 1 Los entornos 3x3 en cada una de las esquinas tienen 4 "unos", aunque el "uno" en el centro de la región 5x5 está aislado. Tales píxeles aislados pueden ser eliminados mediante una simple operación de borrado. El borrado puede ocasionar que algunas de los entornos tengan menos de 3 "unos". Por tanto, es necesario iterar con el filtrado de rango y realizar borrados de píxeles aislados.
El mínimo número de "unos" dentro de un entorno
de 3x3 es otro parámetro libre del algoritmo. Por defecto su valor
es 3 píxeles.
Hasta este punto, sería posible usar XRj para
seleccionar aquellos píxeles de Rj, que se corresponden,
presumiblemente, con características importantes. Estas características
son devueltas a Sj para restaurar algunos de sus
detalles.
Sin embargo, el binarizado de Rj recorta las
"bases" de grandes características. Cuando las características
son devueltas a Sj, el recorte introduce distorsión que no
estaba presente en la imagen original.
Si representamos la imagen como una señal, la distorsión se debe a los picos
de la imagen que quedan poco visibles.
Solución:
Para recuperar las bases de estas características,
MIC expande las regiones de no-ceros de XRj
a través del procesado de esqueletos morfológicos. El esqueleto de una
región es su medial axis (medio eje) MAT.
El procedimiento usa el algoritmo de esqueleto conocido
como MAT.
Luego se dilata el esqueleto con un elemento
estructurante binario de diámetro dj.
La característica más grande en Dj debe ser
mas pequeña que el elemento estructurante de radio dj. Por
tanto, por dilatación del esqueleto con el elemento estructurante de
radio dj, el algoritmo encuentra el soporte del área más
grande posible que podría incluir picos y bases.
Para completar el procesamiento de la imagen residual, el
algoritmo pone a cero cualquier píxel en Rj cuyo soporte no
está en el esqueleto dilatado.
Finalmente, el algoritmo recombina la información de las
imágenes residuales con la imagen suavizada.
Se asume que el algoritmo calculó las imágenes
suavizadas S1...Sk usando elementos estructurantes con
diámetros d1...dk.
Se asume que el ruido queda eliminado de tophats T1...Tk
y de bothats B1...Bk.
La imagen más suavizada, Sk, es la base de la reconstrucción. Las características de brillo se devuelven a Sk mediante la suma de todos los tophats aclarados. Las características de oscuridad se devuelven a Sk mediante la substracción de la suma de todos los bothats aclarados, esto es
donde: J es la imagen aclarada. Tj es la j-ésima tophat aclarada del ruido. Bj es la j-ésima bothat aclarada del ruido.
A continuación se presenta una formalización del algoritmo
de aclarado de imágenes. Se divide en tres partes: una rutina principal y
dos subrutinas.
La rutina principal controla la descomposición de la imagen
en bandas de tamaño, crea los residuales, los manda para ser aclarados y
recombina los resultados.
La primera subrutina es el procedimiento de suavizado de las
imágenes llamado OCCO.
La segunda subrutina es el procesador de imágenes residuales TOPBOT.
Sea I una imagen en escala de grises, y sea I*
la versión suavizada de I.
Sea S = OCCO(I;d) la media de los píxeles de la
apertura-clausura de I y la clausura-apertura de I, donde las operaciones
son realizadas mediante un elemento estructurante en forma de disco con
diámetro d.
OCCO(I;d) se implementa en la subrutina 1.
Sea T el tophat de I con respecto a S,
y sea B el bothat de I con respecto a S.
Sea T* = TOPBOT(T;d,f,s) el aclarado del tophat T,
y sea B* = TOPBOT(B;d,f,s) el aclarado del bothat B.
Sea f un factor por el cual multiplicamos la raíz
cuadrada de los segundos momentos cuando calculamos el binarizado, y sea
s
el mínimo área del entorno de 3x3 de una región en la imagen residual
aclarada.
TOPBOT() se implementa en la subrutina 2.
Sea Tacc los acumulados tophat aclarados, y sea
Bacc
los acumulados bothat aclarados.
Sea k el número de bandas de tamaño a ser
computadas.
Sea {d1...dk} enteros tal que d1<...<dk.
Sea j una variable índice.
Todas las adiciones y substracciones de imágenes son a
tamaño de píxel.
La elección normal de los parámetros es dj = 2j+1+1, f = 1, s = 3. Ocasionalmente es útil especificar un valor a f para el tophat y otro para el bothat, de igual forma sucede con s.
Inicializar variables e imágenes: j=0, Tacc=0,Bacc=0;
j=j+1;
S=OCCO(I;dj)
Para todos los píxeles (x,y)
![]()
T* = TOPBOT(T;dj,f,s)
Tacc=Tacc+T*;
Para todos los píxeles (x,y)
B* = TOPBOT(B;dj,f,s)
Bacc=Bacc+B*;
I=S;
si j < k entonces ir al paso 2;
I* = S + Tacc - Bacc;
Sea I, C, O, CO, OC y S imágenes.
Sean OPEN(I,d) y CLOSE(I,d) que representan respectivamente las aperturas y clausuras de una imagen mediante un elemento estructurante en forma de disco de diámetro d.
O = OPEN(I,d);
OC = CLOSE(O,d);
C = CLOSE(I,d);
CO = OPEN(C,d);
Para todos los píxeles (x,y),
S(x,y) = [OC(x,y)+CO(x,y)]/2;
Sea R una imagen residual (tophat o bothat).
Sea d el diámetro de un elemento estructurante usado para
crear la imagen suavizada.
Sea histo(R) el histograma de escala de grises de R.
Sea E{n2} el segundo momento de la distribución
de probabilidad de escala de grises de R.
Sea THRESH(R,t) que representa la binarización de R con un
umbral t.
Xi es una imagen binaria máscara.
El parámetro f es un número real en el intervalo [1,2].
El parámetro s es un número entero en el intervalo
{1,..,9}.
Sea RANK(Xi,s) un rango de filtro de orden
s, que
devuelve una imagen binaria Xi+1 tal que Xi+1(x,y) =
1, entonces Xi(x,y) es el centro de un entorno 3x3 en Xi
que contiene al menos s píxeles blancos. Si Xi+1(x,y) = 0,
entonces el entorno 3x3 de Xi centrado en (x,y) contiene menos
que s píxeles.
Sea DILATE(Xi,d) la dilatación de Xi
con un disco de radio d (cuando d=3, el "disco" es un cuadrado
3x3).
AND es la operación lógica a nivel de píxel.
ISODEL(Xi) es una función que elimina los
píxeles aislados.
SKELETON(Xi) calcula el esqueleto morfológico.
h = histo(R);
m =
(calculado desde h);
t = f*m;
X0 = THRESH(R,t);
X1 = RANK(X0,s);
X2 = DILATE(X1,3);
X3 = X0 AND X2;
X4 = ISODEL(X3);
si existieron borrados en el paso 8, hacer X0 = X4; y volver al paso 5
X5 = SKELETON(X4);
X6 = DILATE(X5,d);
R* = R AND X6;