análisis de imágenes binarias
DESCRIPTION
Análisis de Imágenes Binarias. Introducción Pasos Parámetros Características Tamaño Forma Localización Reconstrucción Aplicación simple. Introducción. Blob. Región conectada de pixels (objeto). Caracterísica:. fondo (background). blob (foreground). Información: - PowerPoint PPT PresentationTRANSCRIPT
Prácticas de Visión Artificial
1
An
ális
is d
e im
ágenes
bin
ari
as
Análisis de Imágenes Binarias
• Introducción• Pasos• Parámetros• Características
– Tamaño– Forma– Localización
• Reconstrucción• Aplicación simple
Prácticas de Visión Artificial
2
An
ális
is d
e im
ágenes
bin
ari
as
Introducción
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:
Prácticas de Visión Artificial
3
An
ális
is d
e im
ágenes
bin
ari
as
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 identificacada blob de forma independiente, y puedetrabajar con buffers de 1, 8 y 16 bits.
El análisis se basa en la realización de una secuencia determinada de pasos.
Prácticas de Visión Artificial
4
An
ális
is d
e im
ágenes
bin
ari
as
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
Prácticas de Visión Artificial
5
An
ális
is d
e im
ágenes
bin
ari
as
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
Prácticas de Visión Artificial
6
An
ális
is d
e im
ágenes
bin
ari
as
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ón
Obtener número de blobs (seleccionados)
• MblobSelectMoment(), MblobSelectFeret().
Prácticas de Visión Artificial
7
An
ális
is d
e im
ágenes
bin
ari
as
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...)
Prácticas de Visión Artificial
8
An
ális
is d
e im
ágenes
bin
ari
as
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
Prácticas de Visión Artificial
9
An
ális
is d
e im
ágenes
bin
ari
as
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);
Prácticas de Visión Artificial
10
An
ális
is d
e im
ágenes
bin
ari
as
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
Prácticas de Visión Artificial
11
An
ális
is d
e im
ágenes
bin
ari
as
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)
Prácticas de Visión Artificial
12
An
ális
is d
e im
ágenes
bin
ari
as
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
Prácticas de Visión Artificial
13
An
ális
is d
e im
ágenes
bin
ari
as
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()
Prácticas de Visión Artificial
14
An
ális
is d
e im
ágenes
bin
ari
as
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”.
Prácticas de Visión Artificial
15
An
ális
is d
e im
ágenes
bin
ari
as
Á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
Prácticas de Visión Artificial
16
An
ális
is d
e im
ágenes
bin
ari
as
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:
Prácticas de Visión Artificial
17
An
ális
is d
e im
ágenes
bin
ari
as
Diámetros de Feret
Para calcular los diámetros de Feret con lasMIL:
Mil M_GENERAL_FERET+
MblobSelectFeret()MIL_ID Feature Listdouble Angle
Mil M_FERET_XM_FERET_Y
También es posible calcular los diámetrosmáximo, mínimo y medio:
Mil M_FERET_MAX_DIAMETERM_FERET_MIN_DIAMETERM_FERET_MEAN_DIAMETER
Prácticas de Visión Artificial
18
An
ális
is d
e im
ágenes
bin
ari
as
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).
Prácticas de Visión Artificial
19
An
ális
is d
e im
ágenes
bin
ari
as
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:
Prácticas de Visión Artificial
20
An
ális
is d
e im
ágenes
bin
ari
as
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
Prácticas de Visión Artificial
21
An
ális
is d
e im
ágenes
bin
ari
as
Localización
Una característica importante es conocerla localización del blob en la imagen:
Mil M_BOXM_CONTACT_BOXM_CENTER_OF_GRAVITY
Prácticas de Visión Artificial
22
An
ális
is d
e im
ágenes
bin
ari
as
Momentos
Los momentos nos dan información delocalización y de forma.
1,1
2,0max1-
210,21,1
1,12,0
yx,m n
p,q
0,0
0,1
0,0
1,0
yx,m n
p,q
tan
v.p.,
Pyyxx
yx
Pyx
qp
qp
m
m
m
m
m
Prácticas de Visión Artificial
23
An
ális
is d
e im
ágenes
bin
ari
as
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:
Prácticas de Visión Artificial
24
An
ális
is d
e im
ágenes
bin
ari
as
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:
Prácticas de Visión Artificial
25
An
ális
is d
e im
ágenes
bin
ari
as
ReconstrucciónPor ú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.
Prácticas de Visión Artificial
26
An
ális
is d
e im
ágenes
bin
ari
as
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