Está en la página 1de 8

2.

ADQUISICION DE IMGENES POR LABVIEW


2.1 Objetivos 2.1.1 General Cargar una imagen desde el disco duro en labview. 2.1.2 Especficos Grabar imgenes en los diferentes formatos usados en Labview Observar los diferentes modelos de color que maneja labview. Desarrollar programas en Labview para mostrar los diferentes modelos de color usados por el mismo 2.2 INTRODUCCIN: Una vez una escena a sido observada y capturada, por ejemplo una fotografa, tenemos nuestra herramienta bsica de trabajo, una imagen digital. Esta imagen podr ser en blanco y negro, en escala de grises o a color, a su vez podr ser almacenada en un archivo usando formatos de imagen apropiados como jpeg, bmp, png, tiff, o aipd que ser el formato de trabajo de labview, software al que va dirigido este documento. 2.3 DESARROLLO Ahora se van a explicar 2 ejemplos para abrir imgenes y guardarlas en distintos formatos. 2.3.1 Ejemplo 1 A continuacin se desarrolla un ejemplo en donde se importa una imagen desde el disco duro: Programa para cargar imgenes en labview

Figura 2.1 Panel frontal para cargar imgenes en labview

Figura 2.2 Diagrama de Bloques para cargar imgenes en labview

Nota: Para el desarrollo del ejemplo es importante que el Image Type se encuentre en Grayscale (U8).

(1)

Figura 2.3 IMAQ Create[1] El IMAQ create, que se encuentra en el diagrama de bloques Functions>Vision and Motion>Vision utilities>Image Managemet es una sub funcin interna de labview que crea un espacio temporal en memoria para la imagen que se desea trabajar, posee varias propiedades, ac solamente se trabajo la del tipo de imagen (Image Type) y se le incluyo el nombre de imagen (Image Name). El tipo de imagen puede ser: Escala de grises (U8)(0): 8 bits por pxel (monocromtico estndar) Escala de grises 16(1): 16 bits por pxel Escala de grises (SGL)(2): 32 bits por pxel Complejo (CSG) (3):2x32 bits por pxel RGB (U32)(4): 32 bits por pxel (rojo, verde, azul) HSL o HSI (U32) (5): 32 bits por pxel (hue, saturation, luminance or intensity) RGB (U64) (6): 64 bits por pxel (rojo, verde, azul): Una imagen en escala de grises esta compuesta por un plano simple de pxeles. Los pxeles estn codificados por: Una imagen de 8 bits representa una escala de grises con valores entre 0 y 255 por pxel Una imagen de 16 bits representa una escala de grises con valores entre -32.768 y 32767 por pxel Una imagen de 32 bits o de punto flotante representa una escala de grises con valores entre - a por pxel

Una imagen de tipo complejo (CSG) contiene la informacin en frecuencia de una imagen en escala de grises. Se pueden crear imgenes complejas aplicando la transformada de Fourier (FFT) a una imagen en escala de grises. Luego de realizar la transformada de una imagen en escala de grises a una imagen compleja, se pueden realizar operaciones en el dominio de la frecuencia de la imagen. Cada pxel en una imagen compleja es codificado en dos datos de 32 bits cada uno, que representan la parte real e imaginaria del pxel complejo. Para poder seleccionar el tipo de imagen que se desea, se coloco un control en la entrada Image Type del IMAQ create, para ello en el diagrama de bloques se ubic el puntero del mouse sobre esta entrada, se dio click derecho y se selecciono create-control (ver figura 2.4), esto crea un men en el panel frontal con todas los tipos de imgenes que se pueden seleccionar. Para poder desarrollar el ejemplo se eligi una imagen en Escala de grises (U8)(0) (Grayscale(U8)) en la entrada del image type. La salida New Image contiene la referencia del espacio creado para la nueva imagen, por ello es conectada a la entrada Image del IMAQ Readfile (lnea 1).

Figura 2.4 Creando un control El IMAQ Readfile, se encuentra en el diagrama de bloques en Functions>Vision and Motion>Vision utilities>Files, es una sub funcin de labview que lee la imagen del usuario en los formatos jpeg, bmp, png, tiff, o aipd, y convierte la lectura de pxeles en la imagen antes definida en el IMAQ create.

(1)

(2)

Figura 2.5 IMAQ Readfile[1]

Para seleccionar la imagen a abrir se necesita un File Path ctrl, que se encuentra en el panel frontal en Controls> Express>Text Controls, ac se deber poner la direccin completa de la imagen en el disco. Al crear el File Path ctrl en el panel frontal, este crea una caja llamada Path en el diagrama de bloques, esta ser la caja que se conecta a la entrada File Path del IMAQ Readfile. Luego la salida Image Out que tiene la referencia de la imagen se conecta en el Image display que se encuentra en Controls> Vision en el panel frontal (Lnea 2) .El panel frontal es mostrado en la Figura 2.1, y el diagrama de bloques en la Figura 2.2. Se visualiza adems el histograma de la imagen, para ello se coloco un IMAQ Histograph que se encuentra en el diagrama de bloques en Functions>Vision and Motion>Image procesing>Analisis, este retorna los datos del histograma listos para graficarlos, para ello se coloca en su entrada Image la imagen deseada, en este caso la imagen leda desde el IMAQ Readfile a travs de su salida Image out (Lnea 2). Para ver la grafica de este se coloca un Waveform graph que se encuentra en el panel frontal en Controls> Express>Graph indicators. Ac UNICAMENTE se podr visualizar la grafica del histograma de imgenes en escala de grises, por ello en la entrada Image Type del IMAQ create.se eligi Graysccale (U8). Si se desea ver el histograma de una imagen a color se debe usar el IMAQ ColorHistograph que se encuentra en el diagrama de bloques en Functions>Vision and Motion>Image processing>color Processing que retorna el histograma de cada una de los planos de la imagen (RGB, HSL, HSV, HSI) segn se desee.

(2)

Figura 2.6 IMAQ Histograph[1] 2.3.2 Ejemplo 2

A continuacin se desarrolla un ejemplo en donde se importa una imagen desde el disco duro y se guarda en otra ubicacin inclusive cambindole el formato de la imagen.

Figura 2.7 Elementos usados en el panel frontal para el ejemplo 2 En este caso se coloc en el panel frontal un File path para seleccionar la ruta del archivo de imagen con el que se quiere trabajar al igual que como se haba realizado en el ejercicio anterior en donde simplemente se abra la imagen guardada en el disco duro. Tambin se coloco un men ring que servir para seleccionar el tipo de imagen aprovechando las caractersticas del IMAQ create, explicado anteriormente.

Figura 2.8 men desplegado en el Image Type En este caso a diferencia del anterior no se coloco el image display sino que se decidi utilizar otra de las herramientas del labview en el diagrama de bloques la cual explicaremos mas adelante. Estos elementos se pueden observar en la Figura 2.7

2 3

Figura 2.9 Diagrama de bloques para el ejemplo 2

En el diagrama de bloques se uso: IMAQ create: Como ya se menciono anteriormente este subVI crea un espacio temporal en memoria para la imagen que se desea trabajar. De sus puertos se decidi usar: Image type: Es el mismo men ring del image type que se creo en el front panel. Imagen name: Simplemente es para colocar el nombre de la imagen. Se introdujo un label constante con un nombre que se escogi aleatoriamente. Cabe decir que tambin se ha podido crear un control para que el usuario sea quien le coloque el nombre a la imagen.

Border size: En este campo se especifica el ancho del borde de la imagen en pixeles. Por defecto el ancho de este borde es 3 que fue el que se decidi dejar. New image: Es la salida del subVI. Esta, ir conectada a la entrada del siguiente subVI. IMAQ ReadFile: Aqu se lee la imagen del usuario y convierte la lectura de pxeles en la imagen antes definida en el IMAQ create. De sus puertos virtuales se usara: Image: Aqu es donde va conectada la salida del IMAQ create, para leer la imagen del usuario. Image out: Aqu ya sale la imagen como tal con un formato y este puerto debe ir conectado a un display que nos muestre la imagen. File path: es donde se pone la direccin en memoria de la imagen que se desea abrir.

IMAQ WindDraw: En este caso se decidi no utilizar un image display sino esta herramienta que a diferencia del image display abre la imagen en una ventana independiente de labview. Este subVI se encuentra en el diagrama de bloques en Functions> Vision and Motion> Vision utilities> External Display. Image: Es la entrada donde se referencia la imagen que se quiere mostrar, all se conecto el Image Out del IMAQ Readfile. Si se quieren visualizar ms de dos IMAQ WindDraw: se deber colocar una constante en la entrada Windows Number con un nmero de 0 a 15. La imagen se puede seguir usando gracias a la salida Image Out del IMAQ WindDraw.

(2)

(3)

Figura 2.10 IMAQ WindDraw[1]: IMAQ Write File 2: Este es el subVI que permite guardar la imagen en un archivo en formato deseado. Para ello se selecciona el formato con la flecha que aparece en la parte de abajo del subVI. Se encuentra en el diagrama de bloques en Functions> Vision and Motion> Vision utilities > Files. Image: es la referencia a la imagen que se quiere guardar, esta se conecta al image out del IMAQ WindDraw: File Path: es la referencia en el disco donde se quiere guardar la nueva imagen, ac se uso un File Path constante donde se escribi la referencia en el disco, NOTA: debido a la versin de Labview este subVi puede cambiar y convertirse en una caja para cada uno de los formatos usados por LabView, su uso es igual, sin embargo se debe escoger el formato desde un principio.

(3)

Figura 2.11 IMAQ Write File 2[1] Filepath: Simplemente sirve para seleccionar la ruta del archivo donde se quiere guardar la imagen. En este caso esta definida como una constante, pero tambin puede ser creada como un control para que el usuario tenga la opcin de escoger la ruta donde la quiere guardar. Para ello se hace click derecho sobre la entrada File Path del IMAQ Write File 2: y se elige constante o control segn se desee.

Ejemplo 4 En este ejemplo se cambiara la resolucin espacial de una imagen

Figura 2.12 panel frontal de cambio de resolucin

Figura 2.13 Diagrama de bloques de cambio de resolucin Para realizar el cambio de resolucin se uso ahora un IMAQ Resample que se encuentra en el diagrama de bloques en Functions> Vision and Motion> Vision utilities> Image Manipulation. Este le da un nuevo tamao a la imagen, para ello se conecto la imagen a la entrada Image Scr, en las entradas X resolution y Y resolution se colocaran los nuevos valores de pixeles, tanto en ancho como en largo, en este ejemplo se decidi convertir la imagen a un recuadro de 64 * 64 pixeles. Se puede observar el histograma de las dos imgenes el cual no cambia mucho en su distribucin de grises, pero si en cantidad de cada gris, notndose que en la imagen original el pico de gris llega hasta 900 mientras que en la imagen modificada llega solo hasta los 200

Figura 2.14 IMAQ resample

2.4 Ejercicios propuestos 1. Abra una imagen y visualcela de la forma que desee. 2. A continuacin utilice la herramienta IMAQ ExtractSingleColorPlane que extrae un plano simple de la imagen y visualice al mismo tiempo en 2 ventanas diferentes la imagen original y el plano extrado de la imagen. 3. En el IMAQ ExtractSingleColorPlane coloque un control sobre la entrada color plane, esto le servir para escoger el plano que quiere ver. 4. Guarde en un archivo y con el formato que usted desee un plano cualquiera de su imagen, nombrando el archivo con el nombre del plano. 5. Visualice los histogramas de cada una de las componentes de la imagen original, basndose en el primer ejemplo explicado en este documento. 6. Escriba los valores mximos y mnimos de los valores de gris segn el histograma de cada plano. 7. Realice la ecualizacin del histograma y visualice el nuevo histograma con su nueva imagen en el front panel. Para la ecualizacin aydese de el IMAQ Equalize mostrado en la figura 2.12, que se encuentra en Functions>Vision and Motion>Image procesing>Procesing. La entrada de la imagen a procesar es Image Scr. Luego cree una nueva imagen con el IMAQ create y pngala en image Dst de este subVI. Observe los histogramas y concluya. 8. De nuevo escriba los valores mximos y mnimos de los valores de gris del histograma para este caso

Figura 2.12 IMAQ Equalize[1] ste subVI redistribuye los valores de los pixeles para linealizar el histograma. 9. Se modificara ahora el brillo y el contraste de la imagen, para ello utilice el IMAQ BCGLookup mostrado en la figura 2.13, que se encuentra en Functions/Vision and Motion/Image procesing/Procesing. Sera necesario crear un control o una constante en la entrada BCG Values para poder modificar la imagen.

Figura 2.13 IMAQ BCGLookup[1]

ste modifica el brillo, el contraste y la luminosidad de la imagen. Para el procesamiento coloque un control en la entrada BCG Values molifquelos y observe que sucede con el histograma. Compare las imgenes resultantes y concluya. Nota: para la utilizacin de este subVI la imagen debe estar en escala de grises.

10. Modifique la resolucin de una imagen pequea y convirtala en una imagen mucho ms grande, observe que pasa con el histograma y con la imagen. 2.5 Entregables Para la siguiente clase, el estudiante deber entregar un documento con la recopilacin de lo hecho en esta gua. Es decir un informe que incluya la informacin de: Ejemplos resueltos Ejercicios resueltos Respuestas a todas las preguntas planteadas Problemas que se tuvieron con los ejemplos y ejercicios Conclusiones generales

2.6 BIBLIOGRAFIA [1] LabVIEW User Manual [2] NI VISION Concepts Manual

También podría gustarte