DetectBlobs
La función DetectBlobs realiza un tipo de análisis de blobs conocido como «análisis de la conectividad» en una región de interés (RDI). En el «análisis de la conectividad», los píxeles de la RDI se dividen en dos categorías, blob o fondo, considerando para ello un valor umbral en escala de grises de modo que todos los píxeles con valores por debajo del umbral se asignan a la categoría «negra» y todos los píxeles con valores por encima del umbral a la categoría «blanca».
De esta forma, los píxeles con valores similares se agrupan en función de su "color" y en función de si "están en contacto" o no con los píxeles vecinos. Los píxeles del fondo están conectados a sus vecinos si están en contacto con ellos en cualquiera de sus lados laterales o en el superior o inferior, mientras que los píxeles de un blob están conectados con sus vecinos si están en contacto con ellos en cualquiera de sus lados, ya sea en un lado lateral, en el superior o inferior, o en un punto diagonal del mismo.
Una vez procesada la imagen, estará segmentada por blobs y píxeles de fondo. Los blobs que se encuentren en la RDI se identificarán en función de sus características físicas y valores asignados, tales como ubicación del blob en la imagen (sus coordenadas de fila y columna), su área, perímetro, extensión y elongación. Los datos de los blobs extraídos se almacenan y proporcionan como resultados en una estructura de datos Blobs.
Esta función constituye el primer paso del análisis de blobs y tanto FindBlobs como SortBlobs utilizan finalmente Referencias de celda a una estructura de datos Blobs de la función DetectBlobs, ya sea directamente o a través de Auditing.
DetectBlobs Entradas
| Parámetro | Descripción | ||||||||||||||
|
Imagen |
This parameter must reference a spreadsheet cell that contains an Imagen data structure; by default, this parameter references A0, the cell containing the data structure. This parameter can also reference other Image data structures, such as those returned by the Image Vision Data Access functions or Funciones de transformación de coordenadas. |
||||||||||||||
|
Elemento posicionador |
Define la región de interés (RDI) con relación a un Fixture entrado o al sistema de coordenadas de imagen proporcionado por una función de Vision Tools. Establecer la RDI con relación al un elemento posicionador permite asegurar que si se gira o desplaza el elemento posicionador, se girará o desplazará en consonancia la RDI, manteniéndose fija la relación entre ambos. El valor de configuración predeterminado es (0,0,0), la esquina superior izquierda de la imagen.
|
||||||||||||||
|
Región |
También conocida como región de interés (RDI), especifica la región de la imagen que se somete a análisis. Haga doble clic sobre el parámetro Región para crear un Modo gráfico interactivo que permite transformar y girar. Seleccione este parámetro y pulse el botón «Maximizar región» en la barra de herramientas de edición de tareas de la hoja de propiedades a fin de expandir automáticamente la región hasta cubrir toda la imagen.
|
||||||||||||||
|
Nota: Los parámetros Elemento posicionador y Región deben estar definidos dentro de los límites de la imagen; de lo contrario, la función dará #ERR.
|
|||||||||||||||
|
Región externa |
Este parámetro utiliza Referencias de celda a una herramienta o función de control Annulus, Circle, Region, EditAnnulus, EditCircle, EditCompositeRegion, EditPolygon, EditRegion. Cuando se utiliza este parámetro, la función ignora los ajustes de Región y Elemento e inspecciona el área de imagen especificada por la región a la que se hace referencia. Si se hace referencia a un control de EditCompositeRegion, el área de inspección puede consistir en una combinación de formas. Cada forma de la región combinada puede definirse como una forma añadida al área de inspección o una sustraída (enmascaramiento) de la misma. Nota: Si este parámetro ha sido configurado como referencia a una región externa, entonces, para utilizar la Región interna de la función, habrá que poner manualmente este parámetro a cero introduciendo para ello el valor 0 en lugar de la referencia de celda. En caso contrario, la función seguirá haciendo referencia a la región externa.
|
||||||||||||||
|
Número a clasificar |
Especifica el número de blobs a clasificar.
Nota: Si el valor del parámetro Número a clasificar es mayor que cero, la función DetectBlobs insertará automáticamente una tabla de resultados que presentará como máximo las 10 entradas que corresponden a los 10 primeros blobs contenidos en la estructura de datos Blobs. Si desea que se visualicen más entradas, puede ampliar la tabla copiando la última fila y pegando adicionalmente la fila tantas veces como desee al final de la table; asegúrese de incrementar el número de índice de la(s) fila(s) recién pegada(s) para que se indexen adecuadamente los blobs.
|
||||||||||||||
|
Umbral |
Especifica el valor en escala de grises que ha de utilizarse para separar los blobs del fondo. Este valor puede determinarse utilizando el ajuste automático de la función DetectBlobs (ajuste por defecto) o configurarlo manualmente mediante ensayo y error o establecerlo como Referencias de celda a los resultados calculados por una función Histograma.
|
||||||||||||||
|
Rellenar orificios |
Especifica uno de los dos métodos para procesar las estadísticas acumuladas en orificios.
|
||||||||||||||
|
Blobs fronterizos |
Especifica una de las dos formas de gestionar los blobs que cruzan la frontera de la RDI.
|
||||||||||||||
|
Color: Blob |
Especifica el color del blob.
Nota:
Cuando Color: Blob y Color: Fondo tiene el mismo valor de ajuste que Color, no se notificará ningún blob. Por ejemplo, cuando Color: Blob configurado como negro y Color: Fondo configurado también como negro, no se notificará ningún blob.
Sin embargo, incluso si Color: Blob y Color: Fondo está configurado con el mismo color, se notificarán blobs detectados cuando están contenidos en un área de color opuesto (véanse los ejemplos siguientes). Si alguna parte del blob no está contenida en un área de color opuesto, no se notificará la existencia de dicho blob.
|
||||||||||||||
|
Color: Fondo |
Especifica el color del fondo en la imagen capturada. El análisis de conectividad octodireccional se realiza en el primer plano y el cuadridireccional en el fondo.
|
||||||||||||||
|
Límite de área: Mín. |
Especifica una limitación al área mínima, en número de píxeles, de todos los blobs devueltos por la función (por defecto = 100); se devolverán únicamente los blobs que tengan un área mayor que el valor de límite de área: Mín. especificado. El intervalo de valores admisibles para el parámetro es:
Por ejemplo, si está conectado al sistema de visión In-Sight D902, el intervalo de valores admisibles para el parámetro es de 0 a 2.304.000 (1920x1200). |
||||||||||||||
|
Límite de área: Máx. |
Especifica una limitación al área máxima, en número de píxeles, de todos los blobs devueltos por la función (por defecto = 100000); se devolverán únicamente los blobs que tienen un área menor que el valor límite de área: Máx. especificado. El intervalo de valores admisibles para el parámetro es:
Por ejemplo, si está conectado al sistema de visión In-Sight D902, el intervalo de valores admisibles para el parámetro es de 0 a 2.304.000 (1920x1200). |
||||||||||||||
|
Mostrar |
Especifica el modo de visualización de los gráficos de DetectBlobs sobre la imagen.
|
||||||||||||||
DetectBlobs Salidas
|
Devuelve |
Una estructura de datos Blobs que contiene los blobs extraídos de la imagen o #ERR si alguno de los parámetros de entrada no es válido. |
|||||||||||||||||||||||||||||||||
|
Resultados |
Cuando se inserta inicialmente DetectBlobs en una celda, se crea una tabla de resultados en la hoja de cálculo por medio de las siguientes Blobs Vision Data Access functions Nota:
|
Ejemplo con DetectBlobs
La función DetectBlobs se utiliza para identificar y localizar blobs formados por píxeles en contacto entre sí, pudiendo tener los blobs diversas formas y tamaños. Este ejemplo ilustra cómo la información devuelta en la tabla de resultados de la estructura de datos DetectBlobs está relacionada con los blobs encontrados y cómo dicha información puede utilizarse para clasificar y filtrar posteriormente los blobs en función de sus características.
Para este ejemplo, se ha utilizado la siguiente imagen para ayudar a ilustrar el significado de los valores que se devuelven en la tabla de resultados de la función DetectBlobs:
Se insertó una función DetectBlobs en una celda vacía de la hoja de cálculo. A partir de las formas en la imagen, los parámetros de la hoja de propiedades de DetectBlobs se configuraron de la siguiente manera:
- Imagen: Para este ejemplo se ha utilizado la configuración predeterminada, pero este parámetro puede hacer referencia a cualquier estructura de datos Imagen, por ejemplo, una estructura de datos de imagen producida por una función Filter que procesa la imagen para eliminar el exceso de ruido en ella antes de inspeccionar la imagen en busca de blobs.
- Elemento posicionador: Se ha utilizado la configuración predeterminada de elemento posicionador porque se utiliza una imagen estática que no se va a girar ni desplazar. Sin embargo, cuando se utilice la función DetectBlobs con imágenes que están sometidas a movimientos, es aconsejable asignar un Fixture a la región de la imagen.
- Región: La región de la imagen se maximizó para incluir todas las formas en el análisis. Tras hacer clic sobre el parámetro Región y pulsar el botón «Maximizar región» en la barra de herramientas de la hoja de propiedades, se amplia automáticamente la región hasta cubrir toda la imagen.
- Número a clasificar: El número a clasificar se ha ajustado poniéndolo a seis. Se podría haber puesto también este parámetro a 0 y entonces la herramienta habría extraído automáticamente todas los blobs que cumplieran los parámetros de color y tamaño especificados en Color Blob/Color Fondo y Límite de área: Mín./Límite de área: Máx. de parámetro.
- Umbral: Se ha utilizado el ajuste predeterminado con el que se calcula automáticamente el valor de Umbral en escala de grises. En esta imagen, las diferencias de valores en escala de grises son muy pronunciadas y se distingue clarísimamente cuáles son los píxeles oscuros y cuáles los claros. En las aplicaciones en las que la gradación es más sutil y el ajuste de umbral automático no llega a separar muy bien los valores, puede resultar muy útil utilizar funciones Histograma como las funciones HistHead o HistTail para determinar las intensidades en escala de grises de distintas regiones de la imagen.
- Rellenar orificios: Se utilizó el ajuste predeterminado con el que se incluye la contribución de los orificios encontrados en los blobs, lo que implica que disminuye el área total de los blobs con orificios. Si se hubiera marcado la casilla de «Rellenar orificios», se notificarían también los orificios encontrados dentro de los blobs y se habría añadido el área de los orificios, lo que habría aumentando el área de los blobs con orificios.
- Blobs fronterizos: Se ha utilizado el ajuste predeterminado con el que se incluyen los blobs que cruzan el límite de la región en la imagen. Con este ajuste, si se hubiera movido la imagen hacia la izquierda de manera que el círculo más grande y la forma cuadrada más pequeña cruzarían el límite izquierdo de la región en la imagen, las partes de dichas formas geométricas que aún estarían dentro del límite de la región se habrían extraído como blobs. Sin embargo, si la casilla estuviera sin marcar, no se habrían procesado dichos blobs.
- Límite de área: Mín./Máx.: Se han utilizado los ajustes predeterminados. Con estos ajustes se filtran, durante la fase de extracción, los blobs de la región según los ajustes de límite mínimo y máximo del área de un blob para determinar si un blob puede clasificarse o no como blob.
- Mostrar: Se ha utilizado el ajuste predeterminado con el que solo se visualizan los gráficos de resultados cuando está seleccionada la celda que contiene la estructura de datos Blobs, como es el caso en el ejemplo siguiente.
Una vez configurada la hoja de propiedades de DetectBlobs, se genera una estructura de datos Blobs y una tabla para los datos de resultados.
Los valores devueltos en la tabla de resultados pueden utilizarse para filtrar y clasificar los blobs utilizando las funciones FindBlobs y SortBlobs. Por ejemplo, se podría insertar una función FindBlobs en la hoja de cálculo y hacer referencia a la función DetectBlobs. Se utilizaría entonces la función FindBlobs para filtrar los blobs en función de su extensión. A continuación, se podría insertar una función SortBlobs en la hoja de cálculo y hacer con ella referencia a la función FindBlobs recientemente creada a fin de ordenar la lista de blobs en función de su posición X, Y.

