visualizacion y manipulacion de imgenes

6

Click here to load reader

Upload: jmgh

Post on 26-Jun-2015

225 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Visualizacion y Manipulacion de Imgenes

VISUALIZACION Y MANIPULACION DE IMÁGENES IMAQ – LabVIEW David Ciro Taborda

Instrumentación

2009

Introducción Existen una gran diversidad de situaciones experimentales en las que es muy difícil

crear mecanismos de recopilación y almacenamiento de datos, como en experimentos de

impacto, crecimiento poblacional de bacterias, movimiento de estructuras orgánicas,

estudio de estructuras microscópicas, etc. Las limitaciones para el desarrollo de dichos

sistemas a veces relacionada con la escala, o la complejidad de los movimientos ha

impulsado la creación de potentes algoritmos de reconocimiento de imágenes, que

proveen ingeniosas soluciones a dichos problemas.

IMAQ es un aditamento de LabVIEW que contiene una gran cantidad de algoritmos que

permiten manipular imágenes y obtener información de estas, además contiene codecs

de interpretación de algunos formatos de video, que permiten descomponer el video en

fotogramas para realizar el análisis de las imágenes en función del tiempo, teniendo así

una forma sencilla de medir trayectorias y velocidades. IMAQ puede, con facilidad

suplir una gran cantidad de costosos instrumentos, además de las ofrece posibilidades de

desarrollo de otras herramientas y algoritmos.

Page 2: Visualizacion y Manipulacion de Imgenes

La Imágen matemáticamente

Cuando observamos una imagen en una pantalla o una fotografía, lo que estamos

observando es un conjunto grande (dependiendo de la resolución de la imagen) de

puntos, coloreados de acuerdo a una regla de representación, o a la forma en que afectan

a una CCD las ondas de luz visible que pasan por una lente. La manera obvia,

computacionalmente hablando, de almacenar una imagen será entonces definir una

matriz cuyas entradas sean todos los posibles colores observables. De esta manera

definamos el conjunto de imágenes de k colores con resolución nm × como:

{ }njmikANNAnm jinmk <≤<≤<×∈= 0,0,/:),( ,ζ (1)

Donde N hace referencia a los números naturales (incluido el cero) y k es el número

de colores que se pueden representar en las entradas de la matriz. Aunque existan

distintos formatos de imagen, todos deben almacenarla de una forma congruente con la

definición de la ecuación (1).

De esta manera una imagen puede entenderse como una señal bidimensional

discretizada, por lo cual es posible realizar a esta procesos de filtrado o transformación

de espacios.

Visualización de Imágenes en LabVIEW

Lo primero que debemos aprender es como se carga una imagen en LabVIEW y que

formato tiene esta en el interior del programa.

Como sabemos existen distintos tipos de formato de imagen digital, los cuales difieren

por la forma en que almacenan la información, la taza de compresión, la agregación de

un canal de existencia de objeto, etc. Esto, sin embargo no le importa al programa de

manipulación de imágenes, ya que este tiene su propio tipo de formato de imagen, con

cualidades mas útiles para un experimentador que para un diseñador gráfico.

Luego de instalar IMAQ

Vision en la

computadora aparecerán

nuevas opciones en los

paneles de la interfaz de

bloques; la mayoría de

esas utilidades se

encuentran contenidas

en el cuadro “vision and

motion” que se halla al

desplegar las pestañas

mediante el botón

derecho del Mouse en el

entorno de bloques.

Page 3: Visualizacion y Manipulacion de Imgenes

Entre los conjuntos de herramientas podemos encontrar:

Vision utilities

Contiene las herramientas

necesarias para la

creación de una imagen

tipo IMAQ, su

representación en

pantalla, la extracción de

zonas de interés, el

calibrado de las escalas,

opciones de manipulación

del color, herramientas de

liberado de memoria, etc.

Image procesing Contiene algoritmos de

trasformación conforme,

de reconocimiento, de

análisis, filtrado, proce-

samiento de color

operadores de señales

bidimensionales, etc.

Machine Vision Contiene algoritmos

dedicados enteramente a

la búsqueda de patrones

en la imagen, conteo de

manchas, e incluso

reconocimiento de

números en indicadores

analógicos o digitales

reales.

Imaq USB En este podemos

encontrar herramientas de

inicialización de cámaras

USB, lo cual nos

permitirá realizar la

adquisición de imágenes

directamente desde

IMAQ, manipulando la

velocidad de adquisición.

Page 4: Visualizacion y Manipulacion de Imgenes

Cargando una imagen en LabVIEW

Antes de cargar una imagen en LabVIEW a

través de IMAQ es necesario crear para esta

un espacio en la memoria disponible para los

procesos, para esto disponemos de la

herramienta “IMAQ Create” ubicada en

Vision and Motion > Vision Utilities > Image

Management > IMAQ Create. Es necesario asignarle un nombre a la imagen, el cual

servirá para procesos de identificación posterior. También es posible seleccionar el tipo

de archivo que se cargará, y el espesor del margen que se crea alrededor de la imagen.

Este instrumento virtual produce a su salida una referencia a la imagen (New Image)

que es reconocida por la mayoría de las utilidades de IMAQ.

Ahora que se ha creado una

alocación en la memoria para la

imagen es posible realizar el

proceso de lectura del disco, es

decir; ya hay un lugar en la

memoria de LabVIEW donde

se puede almacenar

temporalmente la imagen. Para

el proceso de lectura de la

imagen emplearemos la herramienta “IMAQ ReadFile”, que se halla en: Vision and

Motion > Vision Utilities > Files > IMAQ ReadFile. Dicha herramienta requiere la

dirección de memoria (en el disco) donde se halla la imagen (File Path), la referencia a

la imagen creada para la manipulación interna de IMAQ (Image) lograda a través de

“IMAQ Create”, y algunas opciones sobre el modo de cargar el archivo que no son

esenciales. Este instrumento produce una referencia a la imagen inicial (Image Out),

pero llena con la información copiada desde el archivo de imagen, y algunas secuencias

de comandos con instrucciones sobre la lectura e interpretación de la imagen.

Como ya se ha creado una

imagen de tipo LabVIEW es

posible emplear la

herramienta de visualización

de IMAQ, que puede ser

encontrada en: Vision and

Motion > Vision Utilities >

External Display > IMAQ

WindDraw, la cual requiere

esencialmente una referencia

a la imagen (Image), en este caso la que fue creada en “IMAQ ReadFile”, a dicha

imagen puede asignársele un nombre que aparecerá como encabezado de esta, y además

es posible abrir varias ventanas de imagen simultáneamente, por lo cual dado el caso se

puede asignar la imagen a determinada ventana (Window Number) empleando

simplemente un número entero.

Page 5: Visualizacion y Manipulacion de Imgenes

Un programa destinado únicamente a

cargar y mostrar una imagen en

pantalla se vería como el de la figura

contígua. A la salida de “IMAQ

WindDraw” en el conector “Image

Out (duplicate)” se halla una copia a

la referencia de la imagen que

permite enviarla a otros procesos.

Para liberar el espacio en la memoria

temporal del programa es necesario

destruir la referencia a la imagen, lo

cual se logra con la herramienta

“IMAQ Dispose” que se halla en:

Vision and Motion > Vision Utilities

> Image Management > IMAQ

Dispose.

Descomponiendo un Video en Fotogramas

Una de las utilidades mas importantes de IMAQ radica en la posibilidad de

descomponer un video en imágenes tipo LabVIEW para realizar sobre ellas

independientemente procesos de identificación; esto nos permite estudiar el movimiento

de objetos en función del tiempo para realizar cálculos de velocidad, posición, etc.

La función es de fácil de implementar, y lo mejor es que permite un gran control del

proceso de descomposición.

Para realizar dicho proceso es necesario que nos familiaricemos con las herramientas de

control de archivos de video tipo avi que se encuentran en Vision and Motion > Vision

Utilities > FILES > AVI.

La herramienta “IMAQ AVI Open” nos

permite crear una referencia a un archivo de

video (Avi Refnum), similar a las referencias

de tipo imagen estudiadas anteriormente. Dicha referencia contiene toda la información

sobre el video, y es como si fuera un “video tipo LabVIEW”. El instrumento requiere la

dirección de memoria (en el disco) del video .avi que se desea estudiar.

Para crear ciclos de reproducción

de video es necesario tener

información esencial sobre este,

como el número de imágenes que

lo componen (Number of Frames),

el formato de las imágenes (Image

Type), y los datos de compresión, o filtros que contenga la imagen (Frame Data).

Toda esta información puede ser accedida mediante la herramienta “IMAQ AVI Get

Info”, la cual requiere únicamente la referencia al video tipo LabVIEW (Avi Refnum).

Este instrumento como los demás, produce a su salida una copia de la referencia que

puedes ser usada por otras aplicaciones.

Page 6: Visualizacion y Manipulacion de Imgenes

Luego de haber abierto el

archivo .avi y haber obtenido la

información del mismo, es

posible extraer de este sus

fotogramas o frames, empleando

únicamente la referencia de video y la herramienta “IMAQ AVI Read Frame”. Sin

embargo es necesario haber creado antes una espacio temporal en la memoria para la

imagen (Image) que se extraerá, lo cual se logra mediante un procedimiento similar al

descrito en la parte inicial del documento; también se debe introducir el número del

frame a extraer (Frame Number).

Este instrumento produce una copia a la referencia de la imagen (Image Out), pero llena

con la información del frame extraido del video, tambien entrega datos de compresión y

filtros (Data Out), y una copia a la referencia del video (Avi Refnum (duplicate)).

Así como con las referencias a la imagen,

siempre es necesario destruir la sesión de video

cuando esta no se requiera, para así liberar el

espacio en la memoria temporal. Sin embargo

esta función es distinta a la de destruir la referencia a la imagen, ya que LabVIEW no

crea una copia temporal del video (sería computacionalmente costoso), sinó que

establece una lazo temporal a la dirección de memoria donde se halla el archivo. Sin

embargo, la referencia a la imagen creada para almacenar el frame si funciona de la

manera usual, y debe ser destruida luego de haberse empleado.

Un programa simple que reproduce un video mostrando en secuencia las imágenes que

lo componen es el siguiente: