En esta entrada vamos a utilizar NI Vision Builder para comprobar el correcto envasado de unos colirios.
Usamos las imágenes del séptimo ejemplo de NI Vision Builder, para ello utilizamos la función “Simulate Adquisition” del directorio : “C:\Program Files (x86)\National Instruments\Vision Builder AI 2010\DemoImg\Pharmaceutical”.
Seguidamente utilizamos “Find Straight Edge” para localizar los colirios mediante flanco de contraste.
Colocamos la constante donde buscará el flanco en un lugar donde sepamos que van a estar en todas las imágenes.
La dirección de búsqueda será de izquierda a derecha.
Lo configuramos “Bright to Dark” porque el cambio va a ser de claro a oscuro.
En “Minimum Edge Strength” con 26 nos vale.
Volvemos a utilizar “Find Straight Edge” para buscar el flanco de la parte superior.
Esta vez colocamos la zona de búsqueda por las cabezas de los envases.
Esta vez la dirección de búsqueda va de arriba hacia abajo “Top to Bottom” y también de claro a oscuro “Bright to Dark”.
Ahora con la función “Geometry” hallaremos la intersección entre el flanco izquierdo y el superior para posicionarnos en un punto fijo.
Seleccionamos los 4 puntos que trazan cada una de las 2 líneas.
A continuación utilizamos “Set Coordinate System” y nos posicionamos en el punto que nos ha dado la intersección de la función anterior, este punto nos va a servir para colocar zonas de búsqueda de líquido y de tapas.
Ahora con un “Match Pattern” buscamos la zona de líquido.
Tomamos un patrón de cómo debería estar si el líquido es correcto.
Ponemos el número de coincidencias mínimo en 500.
Fijamos el límite máximo y mínimo en 4 dado que vienen en grupos de 4 los colirios.
A continuación vamos a utilizar otro “Match Pattern” para buscar las tapas de la misma manera.
Tomamos un patrón de cómo debería estar la tapa.
En “Limits” ponemos también 4 como máximo y mínimo por la misma razón que en la función anterior.
Para el resultado de la comprobación utilizamos “Logic Calculator”.
Dentro de esta función pondremos una operación AND entre el resultado de la búsqueda de líquido y cabezas, si cualquiera de las dos falla el resultado será negativo y el pack de colirios no será válido.
Basándonos en el resultado de la función anterior mostraremos en pantalla si el pack es correcto o no utilizando un “Custom Overlay”.
Colocamos un indicador booleano cuyo valor dependerá del estado de “RESULTADO” que es la operación AND que hicimos anteriormente.