View
9
Download
0
Category
Preview:
Citation preview
1
Procesamiento Digital de Imágenes
Pablo Roncagliolo B.
Nº 12
prb@2007 Imágenes: Gonzalez&Wood 2
Operaciones Morfológicas
� Conceptos y algoritmos relevantes:
� Operaciones lógicas
� Dilatación
� Erosión
� Open (erosión+dilatación)
� Close (dilatación+erosión)
� Bordes utilizando op. Morfológicas
� Fill Hole (Relleno de regiones)
� Esqueleto de objetos
� Etiquetado
2
prb@2007 Imágenes: Gonzalez&Wood 3
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 4
Operaciones Morfológicas
3
prb@2007 Imágenes: Gonzalez&Wood 5
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 6
Operaciones Morfológicas
4
prb@2007 Imágenes: Gonzalez&Wood 7
Operaciones Morfológicas: Dilatación
BandABA )(≈⊕
% Dilatación
A2=imdilate(A,B)
Es conmutativa y asociativa
“Deja el centro, si el AND de algún elemento de B es 1”
prb@2007 Imágenes: Gonzalez&Wood 8
Operaciones Morfológicas: Dilatación
% Elementos Estructurantes
B=strel(‘diamond’,1);
5
prb@2007 Imágenes: Gonzalez&Wood 9
Operaciones Morfológicas: Erosión
BorABA )(≈Θ “Deja el centro, si el OR de todo B es 1”
% Erosión
A2=imerode(A,B);
prb@2007 Imágenes: Gonzalez&Wood 10
Operaciones MorfológicasErosión+Dilatación: Open
BAo
% Open
A2=imopen(A,B);
6
prb@2007 Imágenes: Gonzalez&Wood 11
Operaciones Morfológicas: Open
prb@2007 Imágenes: Gonzalez&Wood 12
Operaciones Morfológicas:Dilatación+Erosión: Close
BA•
% Close
A2=imclose(A,B);
7
prb@2007 Imágenes: Gonzalez&Wood 13
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 14
Operaciones Morfológicas
8
prb@2007 Imágenes: Gonzalez&Wood 15
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 16
Operaciones Morfológicas:
Bordes mediante erosión:
9
prb@2007 Imágenes: Gonzalez&Wood 17
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 18
Ej. Erosión:
El elemento estructurante debe estar contenido El elemento estructurante debe estar contenido
completamente.completamente.
Operaciones Morfológicas
10
prb@2007 Imágenes: Gonzalez&Wood 19
Ej. Erosión
prb@2007 Imágenes: Gonzalez&Wood 20
Ej. Erosiónfunctionfunction B=B=erosionerosion(A)(A)
[H W Z]=[H W Z]=sizesize(A);(A);
B=B=zeroszeros(H,W);(H,W);
K=[1 1 1; K=[1 1 1;
1 1 1;1 1 1;
1 1 1];1 1 1];
forfor f=(1+1):(Hf=(1+1):(H--1)1)
forfor c=(1+1):(Wc=(1+1):(W--1)1)
suma=0;suma=0;
for fffor ff==--1:11:1
forfor cc=cc=--1:11:1
suma=suma+K(suma=suma+K(ffff+2,cc+2)*A(f++2,cc+2)*A(f+ffff,c+cc)/255;,c+cc)/255;
endend;;
endend;;
ifif suma==suma==sumsum((sumsum(K))(K))
B(f,c)=255;B(f,c)=255;
elseelse
B(f,c)=0;B(f,c)=0;
endend;;
endend;;
endend;;
11
prb@2007 Imágenes: Gonzalez&Wood 21
Dilatación:
El centro del elemento estructurante Y debe estar contenido en El centro del elemento estructurante Y debe estar contenido en
la imagen X.la imagen X.
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 22
Ej. Dilatación
12
prb@2007 Imágenes: Gonzalez&Wood 23
Ej. Dilatación
functionfunction B=B=dilataciondilatacion(A)(A)
[H W Z]=[H W Z]=sizesize(A);(A);
B=B=zeroszeros(H,W);(H,W);
K=[1 1 1; K=[1 1 1;
1 1 1;1 1 1;
1 1 1];1 1 1];
forfor f=(1+1):(Hf=(1+1):(H--1)1)
forfor c=(1+1):(Wc=(1+1):(W--1)1)
suma=0;suma=0;
for fffor ff==--1:11:1
forfor cc=cc=--1:11:1
suma=suma+K(suma=suma+K(ffff+2,cc+2)*A(f++2,cc+2)*A(f+ffff,c+cc)/255;,c+cc)/255;
endend;;
endend;;
ifif suma>=1suma>=1
B(f,c)=255;B(f,c)=255;
elseelse
B(f,c)=0;B(f,c)=0;
endend;;
endend;;
endend;;
prb@2007 Imágenes: Gonzalez&Wood 24
Ej. Apertura Morfológica: erosión+dilatación
La apertura permite “recuperar” los elementos “mayores”, La apertura permite “recuperar” los elementos “mayores”,
redondeando sus contornos.redondeando sus contornos.
Operaciones Morfológicas
13
prb@2007 Imágenes: Gonzalez&Wood 25
Ej. Cierre Morfológico: dilatación+erosión
Permite “unir” elementos cercanos.Permite “unir” elementos cercanos.
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 26
Ej. Apertura y Cierre
14
prb@2007 Imágenes: Gonzalez&Wood 27
Operaciones Morfológicas: “Fill Hole”
prb@2007 Imágenes: Gonzalez&Wood 28
Operaciones Morfológicas
15
prb@2007 Imágenes: Gonzalez&Wood 29
Operaciones Morfológicas:
Componentes conectados
prb@2007 Imágenes: Gonzalez&Wood 30
Operaciones Morfológicas
16
prb@2007 Imágenes: Gonzalez&Wood 31
Operaciones Morfológicas
Transformación Hit-or-Miss:
prb@2007 Imágenes: Gonzalez&Wood 32
Operaciones Morfológicas
“Envoltura convexa” (convex hull): Conjunto de píxeles
(polígono) convexos que contienen a un objeto
binarizado.
17
prb@2007 Imágenes: Gonzalez&Wood 33
Operaciones Morfológicas
Ejemplo: “Envoltura convexa”
prb@2007 Imágenes: Gonzalez&Wood 34
Operaciones Morfológicas
Resultado final, limitando a las dimensiones máximas
del objeto inicial.
18
prb@2007 Imágenes: Gonzalez&Wood 35
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 36
Operaciones Morfológicas
19
prb@2007 Imágenes: Gonzalez&Wood 37
Un esqueleto intenta representar la forma de un objeto Un esqueleto intenta representar la forma de un objeto
con un número relativamente pequeño de píxeles. De con un número relativamente pequeño de píxeles. De
esta forma, todos los píxeles del esqueleto son esta forma, todos los píxeles del esqueleto son
estructuralmente necesarios.estructuralmente necesarios.
La posición, orientación y longitud de las líneas del La posición, orientación y longitud de las líneas del
esqueleto se corresponden con aquellas equivalentes de esqueleto se corresponden con aquellas equivalentes de
la imagen original. La tarea de sacar características de la imagen original. La tarea de sacar características de
una imagen queda simplificada al obtener su esqueleto.una imagen queda simplificada al obtener su esqueleto.
Operaciones Morfológicas: Esqueleto
prb@2007 Imágenes: Gonzalez&Wood 38
Transformación de eje central Transformación de eje central
(MAT, Medial (MAT, Medial Axis TransformAxis Transform))
Se denomina eje central (medial Se denomina eje central (medial axisaxis) al esqueleto. La ) al esqueleto. La
forma de obtener el eje central es calcular, para cada forma de obtener el eje central es calcular, para cada
píxel, la distancia más corta hasta el borde del objeto. Si píxel, la distancia más corta hasta el borde del objeto. Si
el píxel tiene más de una distancia mínima es que forma el píxel tiene más de una distancia mínima es que forma
parte del eje central.parte del eje central.
Operaciones Morfológicas: Esqueleto
20
prb@2007 Imágenes: Gonzalez&Wood 39
Operaciones Morfológicas: Esqueleto
prb@2007 Imágenes: Gonzalez&Wood 40
Operaciones Morfológicas: Esqueleto
21
prb@2007 Imágenes: Gonzalez&Wood 41
Algoritmo
Básico
A1=A1=erosionerosion(A);(A);
Borde=ABorde=A--A1;A1;
forfor f=1:Hf=1:H
forfor c=1:Wc=1:W
ifif A(f,c)>0A(f,c)>0
n=0;n=0;
minmin=H*W;=H*W;
for fffor ff=1:H=1:H
forfor cc=1:Wcc=1:W
ifif Borde(Borde(ffff,cc)>0,cc)>0
d=(fd=(f--ffff)^2 + (c)^2 + (c--cc)^2;cc)^2;
ifif d==d==minmin, , n=n+1; n=n+1; endend;;
ifif d<d<minmin,, minmin=d; n=1; =d; n=1; endend;;
endend;;
endend;;
endend;;
ifif n>1n>1,, B(f,c)=255; B(f,c)=255; endend;;
endend;;
endend;;
endend;;
If abs(d-min)<delta ...
delta puede ser 1, 2 o más, lo que
permite mayor flexibilidad en la
búsqueda del eje central, sobre todo
para objetos con anchos o altos
“pares”
Operaciones Morfológicas: Esqueleto
prb@2007 Imágenes: Gonzalez&Wood 42
Operaciones Morfológicas
22
prb@2007 Imágenes: Gonzalez&Wood 43
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 44
Operaciones Morfológicas
23
prb@2007 Imágenes: Gonzalez&Wood 45
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 46
Operaciones Morfológicas
24
prb@2007 Imágenes: Gonzalez&Wood 47
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 48
Operaciones Morfológicas
25
prb@2007 Imágenes: Gonzalez&Wood 49
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 50
Operaciones Morfológicas
26
prb@2007 Imágenes: Gonzalez&Wood 51
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 52
Operaciones Morfológicas
27
prb@2007 Imágenes: Gonzalez&Wood 53
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 54
Operaciones Morfológicas
28
prb@2007 Imágenes: Gonzalez&Wood 55
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 56
Operaciones Morfológicas
29
prb@2007 Imágenes: Gonzalez&Wood 57
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 58
Operaciones Morfológicas
30
prb@2007 Imágenes: Gonzalez&Wood 59
Operaciones Morfológicas
prb@2007 Imágenes: Gonzalez&Wood 60
Extracción de Regiones y Etiquetado
Selección de umbrales óptimos en el histograma
Generalmente la extracción de regiones y su etiquetado se
realizan sobre imágenes previamente binarizadas
31
prb@2007 Imágenes: Gonzalez&Wood 61
Binarización según histograma
[nf nc]=size(A);
HISTOGRAMA=zeros(1,256);
for f=1:nf
for c=1:nc
HISTOGRAMA(A(f,c)+1)= HISTOGRAMA(A(f,c)+1)+1;
end;
end;
Es posible automatizar la
detección del umbral de
binarización, “filtrando” el
histograma (p. ej.
promedio móvil), y
detectando el primer
mínimo local desde el
promedio del fondo de la
imagen.
Extracción de Regiones y Etiquetado
prb@2007 Imágenes: Gonzalez&Wood 62
Etiquetado
Después de binarizar se puede ejecutar alguno de los
algoritmos de etiquetado.
Un Algoritmo muy utilizado es el siguiente:
1 2
3
45
6
7
8 9
10
1112
1 2
3
45
6
7
8 9
10
1112
• Marcar todos los píxel distintos del
fondo con etiquetas diferentes
(números)
• Iterando desde la esquina superior
izq., asignar a cada píxel la menor
etiqueta presente en la vecindad
(tipo 6)
• Repetir proceso pero iterando desde
la esquina inferior der.
Extracción de Regiones y Etiquetado
32
prb@2007 Imágenes: Gonzalez&Wood 63
E=zeros(nf,nc);
for f=1:nf
for c=2:nc
if Ab(f,c)==1
E(f,c)=ETIQUETA;
ETIQUETA=ETIQUETA+1;
else
E(f,c)=0;
end;
end;
end;
//luego propagar las etiquetas menores vecinas....
Extracción de Regiones y Etiquetado
prb@2007 Imágenes: Gonzalez&Wood 64
Se entiende por vecindad tipo 6:
111
11
11
1111
11
111
11
11
1111
11
Cuando se realiza
iteración desde arriba
hacia abajo
Cuando se realiza
iteración desde abajo
hacia arriba
Extracción de Regiones y Etiquetado
33
prb@2007 Imágenes: Gonzalez&Wood 65
111
11
11
1111
11
141312
1110
98
7654
32
Etiquetado inicial.
Supone que todos los
píxel son “regiones” u
objetos independientes
Extracción de Regiones y Etiquetado
prb@2007 Imágenes: Gonzalez&Wood 66
141312
1110
98
7652
32
141312
1110
98
7622
32
141312
1110
98
7222
32
141312
1110
98
2222
32
141312
1110
92
2222
32
141312
1110
22
2222
32
Extracción de Regiones y Etiquetado
34
prb@2007 Imágenes: Gonzalez&Wood 67
141312
112
22
2222
32
141312
112
22
2222
32
14132
112
22
2222
32
1422
112
22
2222
32
1122
112
22
2222
32
Este problema se
resuelve con la
segunda iteración
desde abajo hacia
arriba
Extracción de Regiones y Etiquetado
prb@2007 Imágenes: Gonzalez&Wood 68
1122
112
22
2222
22
El proceso de etiquetado abre la posibilidad de
trabajar directamente con regiones o sub-
imágenes, lo que optimiza notablemente el
análisis.
Es importante generar una estructura de datos
apropiada para referenciar los “objetos”.
Objeto 1
Objeto 2
Extracción de Regiones y Etiquetado
35
prb@2007 Imágenes: Gonzalez&Wood 69
211
21
11
1111
11
Un paso opcional es renombrar las etiquetas
de los objetos encontrados.
Objeto 1
Objeto 2
Extracción de Regiones y Etiquetado
prb@2007 Imágenes: Gonzalez&Wood 70
211
21
11
1111
11
Es importante generar una estructura de datos
apropiada para referenciar los “objetos”.
Objeto 1
x1: integer;
y1: integer;
x2: integer;
y2: integer;
xp: integer;
yp: integer;
Ancho: integer;
Alto: integer;
Area: integer;
...
Centro...
Razon...
Etc...
x1: integer;
y1: integer;
x2: integer;
y2: integer;
xp: integer;
yp: integer;
Ancho: integer;
Alto: integer;
Area: integer;
...
Centro...
Razon...
Etc...
Objeto 2
Extracción de Regiones y Etiquetado
36
prb@2007 Imágenes: Gonzalez&Wood 71
Muchas de los análisis básico se realizan sobre la estructura
de datos. Estas restricciones se denominan “filtros”
Type TRegion=record
x:integer;
area:integer:
...
end;
var
D:array of TRegion;
i,c: integer;
Begin
c:=0;
for i:=1 to N do begin
if (D[i].Area>5) and (D[i].Razon>0.8) then c:=c+1;
end;
end;
Ejemplo donde se cuentan los “objetos” con área mayor a 5 píxel y razón de diámetros mayor a 0.8
Extracción de Regiones y Etiquetado
Recommended