Análisis de Imágenes Binarias

26
Prácticas de Visión Artificial 1 Análisis de imágenes binarias Análisis de Imágenes Binarias • Introducción • Pasos • Parámetros • Características – Tamaño – Forma – Localización • Reconstrucción Aplicación simple

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 Presentation

Transcript of Análisis de Imágenes Binarias

Page 1: Análisis de Imágenes Binarias

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

Page 2: Análisis de Imágenes Binarias

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:

Page 3: Análisis de Imágenes Binarias

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.

Page 4: Análisis de Imágenes Binarias

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

Page 5: Análisis de Imágenes Binarias

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

Page 6: Análisis de Imágenes Binarias

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().

Page 7: Análisis de Imágenes Binarias

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...)

Page 8: Análisis de Imágenes Binarias

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

Page 9: Análisis de Imágenes Binarias

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);

Page 10: Análisis de Imágenes Binarias

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

Page 11: Análisis de Imágenes Binarias

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)

Page 12: Análisis de Imágenes Binarias

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

Page 13: Análisis de Imágenes Binarias

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()

Page 14: Análisis de Imágenes Binarias

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”.

Page 15: Análisis de Imágenes Binarias

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

Page 16: Análisis de Imágenes Binarias

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:

Page 17: Análisis de Imágenes Binarias

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

Page 18: Análisis de Imágenes Binarias

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).

Page 19: Análisis de Imágenes Binarias

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:

Page 20: Análisis de Imágenes Binarias

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

Page 21: Análisis de Imágenes Binarias

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

Page 22: Análisis de Imágenes Binarias

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

Page 23: Análisis de Imágenes Binarias

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:

Page 24: Análisis de Imágenes Binarias

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:

Page 25: Análisis de Imágenes Binarias

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.

Page 26: Análisis de Imágenes Binarias

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