Curso de Visión Artificial con MIL
1
4.-
Anális
is d
e b
lob
s
4.- Análisis de Blobs
• Introducción• Pasos para realizar el análisis de
blobs• Parámetros• Características
– Tamaño– Forma– Localización
• Reconstrucción• Aplicación simple
Curso de Visión Artificial con MIL
2
4.-
Anális
is d
e b
lob
s
Introducción al análisis de blobs
BlobRegión conectada de pixels (objeto)
fondo(background)
blob(foreground)
Información:
El análisis de blobs nos permite saber lascaracterísticas de los objetos de interés, y eliminar objetos no deseados.
Caracterísica:
Curso de Visión Artificial con MIL
3
4.-
Anális
is d
e b
lob
s
Análisis de blobs y MIL
La librería MIL contiene un módulo de análisis de blobs que:
• Contiene un elemento de control del análisis de blobs: BlobResult
• Permite la extracción de gran número de características, utilizando el elemento: Feature List
El módulo de análisis de blobs identifica cada blob de forma independiente, y puede trabajar con buffers de 1, 8 y 16 bits.
El análisis se basa en la realización de una secuencia determinada de pasos.
Curso de Visión Artificial con MIL
4
4.-
Anális
is d
e b
lob
s
Pasos para realizar el análisis de blobs
1. Adquisición (lectura) de la imagen. [Prep.]
2. Binarización. [Prep.]
3. Crear lista de resultados BlobResult
4. Establecer los parámetros del análisis.
• MblobAllocResult ()
MIL_ID SystemId Id. del sistema
MIL_ID* BlobResIdPtr Lista de resultados
• MblobControl ()
MIL_ID BlobResId Id. de la lista de resultados
long ProcMode Modo de procesamiento
double Value Valor asociado
Curso de Visión Artificial con MIL
5
4.-
Anális
is d
e b
lob
s
Pasos para realizar el análisis de blobs
5. Crear la lista de características, FeatureList
6. Selección de características
7. Cálcular resultados
• MblobSelectFeature ()
MIL_ID FeatureListId Id. de la lista de carac.
long Feature Característica seleccionada
• MblobCalculate ()
MIL_ID BlobIdentImageId Imagen a analizar
MIL_ID GrayImageId Imagen a analizar (grises)
MIL_ID FeatureListId Id. de la lista de carac.
MIL_ID BlobResultId Id. de la lista de resultados
• MblobAllocFeatureList ()
MIL_ID SystemId Id. del sistema
MIL_ID* FeatureListIdPtr Lista de características
Curso de Visión Artificial con MIL
6
4.-
Anális
is d
e b
lob
s
Pasos para realizar el análisis de blobs
8. Seleccionar blobs según características
9. Obtener resultados
• MblobGetNumber ()
MIL_ID BlobResId Id. de la lista de resultados
long* VarPtr Variable de usuario
• MblobSelect ()
MIL_ID BlobResId Id. de la lista de resultados
long Operation Operación (incluir, excluir,...)
long Feature Característica utilizada
long Condition Condición para la selección
double CondLow Valor bajo para la condición
double CondHigh Valor alto para la condiciónObtener número de blobs (seleccionados)
• MblobSelectMoment(), MblobSelectFeret().
Curso de Visión Artificial con MIL
7
4.-
Anális
is d
e b
lob
s
Pasos para realizar el análisis de blobs
• MblobGetResult ()
MIL_ID BlobResId Id. de la lista de resultados
long Feature Característica a recuperar
void* TargetArrayPtr Ap. a una lista de carac.
Obtener valores de características (seleccionados)
• MblobGetLabel ()
MIL_ID BlobResId Id. de la lista de resultados
long XPos Coordenada X del blob
long YPos Coordenada Y del blob
void* LabelVarPtr Variable de usuario
Obtener la etiqueta de 1 blob
9. Obtener resultados (continuación...)
Curso de Visión Artificial con MIL
8
4.-
Anális
is d
e b
lob
s
Pasos para realizar el análisis de blobs
• MblobGetResultSingle ()
MIL_ID BlobResId Id. de la lista de resultados
long LabelVal Etiqueta del blob
long Feature Característica a recuperar
void* TargetArrayPtr Ap. a una lista de carac.
Obtener valores de características de 1 blob
9. Obtener resultados (continuación...)
• MblobGetRuns ()
MIL_ID BlobResId Id. de la lista de resultados
long LabelVal Etiqueta del blob
long ArrayType Tipo de datos del array de runs
void* RunXPtr Lista de coordenadas X
void* RunYPtr Lista de coordenadas Y
void* RunLengthPtr Lista de tamaño de cada run
Obtener la codificación del recorrido de 1 blob
Curso de Visión Artificial con MIL
9
4.-
Anális
is d
e b
lob
s
Ejemplo
// Imagen: bolts.mim // Objetivo: determinar el número de objetos de la imagen y marcar// su centro de gravedad
// Crear lista de resultados y lista de característicasMblobAllocResult(MilSystem, &BlobResult); MblobAllocFeatureList(MilSystem, &FeatureList); // Seleccionar característicaMblobSelectFeature(FeatureList, M_AREA); MblobCalculate(BinImage, M_NULL, FeatureList, BlobResult); // Excluir blobs pequeñosMblobSelect(BlobResult, M_EXCLUDE, M_AREA, M_LESS_OR_EQUAL, MIN_BLOB_AREA, M_NULL); // Leer número de blobsMblobGetNumber(BlobResult, &TotalBlobs);
// Seleccionar centro de gravedad y cálcular nuevas característicasMblobSelectFeature(FeatureList, M_CENTER_OF_GRAVITY); MblobCalculate(BinImage, M_NULL, FeatureList, BlobResult);
MblobGetResult(BlobResult, M_CENTER_OF_GRAVITY_X+ M_TYPE_LONG, CogX);
MblobGetResult(BlobResult, M_CENTER_OF_GRAVITY_Y+ M_TYPE_LONG, CogY);
// Liberar elementosMblobFree(BlobResult); MblobFree(FeatureList);
Curso de Visión Artificial con MIL
10
4.-
Anális
is d
e b
lob
s
Parámetros del análisis de blobs
Para la correcta interpretación de la definiciónde blob han de establecerse un conjunto deparámetros con la función MblobControl.Modo de procesamiento Valor
M_BLOB_IDENTIFICATION M_INDIVIDUALM_WHOLE_IMAGEM_LABELLED
M_LATTICE M_8_CONNECTEDM_4_CONNECTED
M_PIXEL_ASPECT_RATIO Value (1.0)M_NUMBER_OF_FERETS ValueM_FOREGROUND_VALUE M_NONZERO
M_ZEROM_IDENTIFIER_TYPE M_GRAYSCALE
M_BINARYM_SAVE_RUNS M_ENABLE
M_DISABLE
Curso de Visión Artificial con MIL
11
4.-
Anális
is d
e b
lob
s
Parámetros del análisis de blobs
La Conectividad define el vecindario de 1 pixel,y por tanto, un blob.
Conectividad a 4M_4_CONNECTED
Conectividad a 8M_8_CONNECTED
1 blob (c8)
2 blobs (c4)
Curso de Visión Artificial con MIL
12
4.-
Anális
is d
e b
lob
s
Parámetros del análisis de blobs
El pixel aspect ratio se utiliza para realizar medidas precisas.
Podemos ajustar la imagen con MimResize()o modificar el pixel aspect ratio.
La manera de conocer el pixel aspect ratiodel dispositivo de adquisición es:
• Adquirir una imagen de un círculo.
• Extraer las caracteísticas M_FERET_YM_FERET_X, con par=1.0
•
pixel de ancho
pixel de alto ratioaspect pixel
M_FERET_X
M_FERET_Y ratioaspect pixel
Curso de Visión Artificial con MIL
13
4.-
Anális
is d
e b
lob
s
Características
El módulo de análisis de blobs de las MIL, nos permite extraer las siguientes características:
• Área y perímetro.
• Dimensiones.
• Forma.
• Localización.
• Momentos.
• Estadísticas.
Para ello debemos seleccionar la caracterís-tica a extraer con la función:
MblobSelectFeature()
Curso de Visión Artificial con MIL
14
4.-
Anális
is d
e b
lob
s
Unidad de medida: el pixel
Cada pixel de una imagen representa una medida real que puede estar en cualquierunidad (mm, cm, ...).
Sin embargo, en una imagen, sólo tenemosuna unidad de medida: el pixel.
Convención:
P
1
1
11
Las medidas que realicemos sobre la imagenlas expresaremos por tanto en pixels.
Un proceso posterior (calibración) sería sabera lo que equivale un pixel en el “mundo”.
Curso de Visión Artificial con MIL
15
4.-
Anális
is d
e b
lob
s
Área y Perímetro
El área de un blob es el número de pixelsque pertenecen al blob.
Mil M_AREA
El perímetro es el número de “caras de pixel”a lo largo del contorno del blob (incluído losagujeros). La distancia de los pixels endiagonal se toman como 1.414.
Mil M_PERIMETER
1
1
1
1
1 1 1 1
1.414
1.414
1.414
Área = 10
Perímetro = 14.2
1
1
Curso de Visión Artificial con MIL
16
4.-
Anális
is d
e b
lob
s
Dimensiones
Además del área y el perímetro, es necesarioencontrar las dimensiones de los blobs.
Debido a que los blobs normalmente tienenformas irregulares, se utilizan como medidasde la dimensión los diámetros de Feret.
Un diámetro de Feret es el tamaño del bloben una dirección determinada:
Curso de Visión Artificial con MIL
17
4.-
Anális
is d
e b
lob
s
= 0o = 22,5o
= 45o = 67,5o
F=5,93
F=6,09
F=6,15
F=5,45
M_FERET_X
Curso de Visión Artificial con MIL
18
4.-
Anális
is d
e b
lob
s
= 90o = 112,5o
= 135o = 157,5o
F=3,99
F=4,27
F=3,35
F=5.22
M_FERET_Y
Curso de Visión Artificial con MIL
19
4.-
Anális
is d
e b
lob
s
M_FERET_X (0o)5,93M_FERET_Y (90o)3,99M_FERET_MAX_DIAMETER6,15M_FERET_MIN_DIAMETER3,35M_FERET_MEAN_DIAMETER5,05M_FERET_MAX_ANGLE22,5o
M_FERET_MIN_ ANGLE122,5o
M_FERET_ELONGATION5,05/3,35=1.54
Curso de Visión Artificial con MIL
20
4.-
Anális
is d
e b
lob
s
2.2 mm
2.2 mm
Curso de Visión Artificial con MIL
21
4.-
Anális
is d
e b
lob
sBona
Que valores han de tener M_FERET_MAX_DIAMETER M_FERET_MIN_DIAMETERPara dar la pieza como correcta?
Curso de Visión Artificial con MIL
22
4.-
Anális
is d
e b
lob
s
Diámetros de Feret
Para calcular los diámetros de Feret con lasMIL:• MblobSelectFeature ()
MIL_ID FeatureListId Id. de la lista de carac.
long Feature Característica seleccionada
M_FERET_X
M_FERET_Y
También es posible calcular los diámetrosmáximo, mínimo y medio:
M_FERET_MAX_DIAMETERM_FERET_MIN_DIAMETERM_FERET_MEAN_DIAMETER
Curso de Visión Artificial con MIL
23
4.-
Anális
is d
e b
lob
s
Diámetros de Feret (II)
Para saber en qué ángulos ha encontrado eldiámetro máximo y mínimo:
Mil M_FERET_MAX_ANGLEM_FERET_MIN_ ANGLE
Por último, como carectirística de forma delobjeto, podemos conocer la relación diámetro_max/ diámetro_ min (elongación):
Mil M_FERET_ELONGATION
Aplicación: Cálculo de la orientación y las medidas del objeto de la figura “bellut3.tif” (Aplicar corrección del ángulo).
Curso de Visión Artificial con MIL
24
4.-
Anális
is d
e b
lob
s
Diámetros de Feret (III)
Para calcular los diámetros de Feret para un ángulo determinado con lasMIL:• MblobSelectFeret() MIL_ID Feature List double Angle
Esto añade
M_GENERAL_FERET
a la lista de características
Para realizar la lectura de este valor lo haremos mediante
MblobGetResult()
Curso de Visión Artificial con MIL
25
4.-
Anális
is d
e b
lob
s
Diámetros de Feret (IV)
Para cambiar el numero de ángulos para calcular los diámetros utilizar MblobControl.
Modo de procesamiento Valor
M_NUMBER_OF_FERETS Value
180o /Value
Curso de Visión Artificial con MIL
26
4.-
Anális
is d
e b
lob
s
Forma
Una región es convexa cuando podemos conectar cualquier pareja de pixels con una línea recta y esta queda completamente contenida dentro de la región:
Podemos realizar medidas de la convexidadde un blob basándonos en el perímetro convexo:
Curso de Visión Artificial con MIL
27
4.-
Anális
is d
e b
lob
s
Forma (II)
La medida que se utiliza para medir la convexidad de una forma es: Roughness
Mil M_CONVEX_PERIMETER
Cálculo del perímetro convexo:
Mil M_ROUGHNESS
convexo perímetro
perímetro roughness
Otra medida util de forma es: Compactness
Mil M_COMPACTNESS
A4
p scompactnes
2
Curso de Visión Artificial con MIL
28
4.-
Anális
is d
e b
lob
s
Localización
Una característica importante es conocerla localización del blob en la imagen:
Mil M_BOXM_CONTACT_BOXM_CENTER_OF_GRAVITY
Añade todos
Curso de Visión Artificial con MIL
29
4.-
Anális
is d
e b
lob
s
Momentos
Los momentos nos dan información delocalización y de forma.
Su momento geométrico de orden p + q se define como:
Número de momentos de orden p + q: p + q + 1
Número total de momentos hasta orden p + q: (p + q + 1)(p + q + 2)=2
),(m n
qp, yxfyxm qp
Curso de Visión Artificial con MIL
30
4.-
Anális
is d
e b
lob
s
Momentos de Orden 0 y 1
Los momentos de orden 0 y 1 tienen una interpretación intuitivamente clara. Si tenemos una imagen binaria, sólo sumamos los píxeles negros. Entonces:
Nyxfm ),(1m n
0,0
yNmyxfym /);,( 0,1m n
0,1
xNmyxfxm / );,( 1,0m n
1,0
En general:
m0,0 es la “masa” (de gris) de la imagen
m01/m00; m10/m00 son las coordenadas
de su “centro de masa”
Curso de Visión Artificial con MIL
31
4.-
Anális
is d
e b
lob
s
Momentos Centrales
),(m n
qp, yxfyyxxqp
Los Momentos Centrales de una imagen son sus Momentos Geométricos calculados tomando como origen de coordenadas su centro de masa:
PROPIEDADES:
m00 = N: masa o número de píxeles negros
m10 =m01 = 0: centro de masa en el origen (0; 0)
Mpq, p,q = 0; 1; 2; : invariantes a la traslación,
Curso de Visión Artificial con MIL
32
4.-
Anális
is d
e b
lob
s
Momentos Centrales de Orden 2
Los momentos de orden p + q = 2 determinan la orientación del eje de mínima inercia.
Ejemplo
Curso de Visión Artificial con MIL
33
4.-
Anális
is d
e b
lob
s
Propiedades de los pq de orden 2
0,22,0
1,11- *2 tan
Los valores de m20, m11, m02 definen un área elíptica que se “ajusta” lo mejor posible al blob. Los ejes de esta elipse caracterizan la “orientación” q:
M _AXIS _PRINCIPAL_ANGLE
M _AXIS _SECONDARY_ANGLE
(perpendicular)
Curso de Visión Artificial con MIL
34
4.-
Anális
is d
e b
lob
s
Curso de Visión Artificial con MIL
35
4.-
Anális
is d
e b
lob
s
Ejemplos
Universidad Politécnica de Valencia
Enrique Vidal Ruiz
Curso de Visión Artificial con MIL
36
4.-
Anális
is d
e b
lob
s
Momentos (MIL)
M _AXIS _PRINCIPAL_ANGLEM _AXIS _SECONDARY_ANGLEM_MOMENT_X0_Y1M_MOMENT_X1_Y0M_MOMENT_X1_Y1M_MOMENT_X0_Y2M_MOMENT_X2_Y0M_MOMENT_CENTRAL_X0_Y2M_MOMENT_CENTRAL_X2_Y0M_MOMENT_CENTRAL_X1_Y1M_GENERAL_MOMENT +
• MblobSelectMoment ()
MIL_ID FeatureListId Id. de la lista de carac.
long MomType Tipo de momento (Normal/ Central)
long XMomOrder Orden del momento en X
long YMomOrder Orden del momento en Y
En el módulo de blobs podemos calcular:
Curso de Visión Artificial con MIL
37
4.-
Anális
is d
e b
lob
s
Estadísticas
Mil M_SUM_PIXEL
Suma de los valores de los pixels:
Mil M_MAX_PIXELM_MIN_PIXEL
Valor máximo y mínimo:
Mil M_MEAN_PIXEL
Media:
Mil M_SIGMA_PIXEL
Sigma:
Curso de Visión Artificial con MIL
38
4.-
Anális
is d
e b
lob
s
Reconstrucción
Por último, es importante conocer, que podemos utilizar el análisis de blobs paraobtener una nueva imagen:
Ejemplos:
• Etiquetar los blobs
• Reconstruir los blobs a partir de una semilla.
• Eliminar los blobs que tocan los extremos de la imagen.
• Rellenar los agujeros de los blobs.
• Extraer los agujeros de los blobs.
Curso de Visión Artificial con MIL
39
4.-
Anális
is d
e b
lob
s
Reconstrucción MIL
• MblobLabel ()
MIL_ID BlobResId Lista de resultados
MIL_ID DestImageBufId Imagen destino
long Mode Modo de escritura.
• MblobReconstruct ()
MIL_ID SourceImageBufId Imagen de entrada
MIL_ID SeedImageBufId Imagen semilla
MIL_ID DestImageBufId Imagen destino
long Operation Tipo de operación
long ProcMode Modo de operación
• MblobFill ()
MIL_ID BlobResId Lista de resultados
MIL_ID DestImageBufId Imagen destino
long Criteriun Criterio de rellenado
long Value Valor de rellenado
Curso de Visión Artificial con MIL
40
4.-
Anális
is d
e b
lob
s
Ejemplo: Histeresis
Top Related