Mini Tutorial de Adquisicion de Imágenes en MatLab
Este es el Primer tutorial que realizo por lo que probablemente este un poco mal o difícil de entender espero que no se asi, para empezar debemos saber si tenemos instalados los drivers de nuestra cámara en matlab para hacer esto haremos lo siguiente:
1. En el “Command Window “ o donde se ejecutan todas las instrucciones de matlab debemos escribirlo siguiente:
>>imaqhwinfo('winvideo')
Una vez escrito esto obtendremos algo parecido a esto, si el resultado es parecido pasaremos al siguiente paso. De no ser asi deberemos instalar el driver de nuestra cámara.
ans =
AdaptorDllName: [1x87 char]
AdaptorDllVersion: '3.5 (R2010a)'
AdaptorName: 'winvideo'
DeviceIDs: {[1]}
DeviceInfo: [1x1 struct]
Después podremos observar varias opciones de nuestra cámara para esto podemos escribir algo asi
>>camara=imaqhwinfo('winvideo',1)
El resultado será algo asi (Depende de el tipo de cámara que tengas instalado)
camara =
DefaultFormat: 'YUY2_160x120' %este es el formato en el que tu cámara observa
DeviceFileSupported: 0
DeviceName: 'HP Webcam'
DeviceID: 1
ObjectConstructor: 'videoinput('winvideo', 1)'
SupportedFormats: {1x5 cell}
Con la siguiente instruccion sabremos que tipos de format soporta nuestra Camara
>>camara.SupportedFormats
ans =
'YUY2_160x120' 'YUY2_176x144' 'YUY2_320x240' 'YUY2_352x288' 'YUY2_640x480'
Esos son los únicos formatos que podras visualizar con esa cámara.
Posteriormente pasaremos a crear nuestra GUI, para esto en el “CommandWindow” escribimos:
>>Guide %Presionamos enter
Y aparacera una ventana como la siguiente:


Seleccionaremos la primera opción para poder crear una GUI nueva y posteriormente daremos click en “OK”, y obtendremos una ventana como la siguiente:
Una vez que estemos acá procederemos a crear nuestra interfaz a nuestro gusto en este caso crearemos una interfaz sencilla para que no se alargue esto, pondremos tres botones con el botón que dice “OK” (Push Botton) solo con dar un click sobre la ventana de trabajo el botón se colocara automáticamente, después pondremos click cobre el bton que parece una grafica (Axes) y colocaremos 2 Axes, estos los podremos hacer mas grandes para que se puedan apreciar las imágenes podría quedar algo parecido a esto:
El siguiente paso será cambiar el nombre a nuestros botones en este paso cambiaremos el nombre que se visualiza y el nombre del botón para esto podremos dar doble click en el primer botón y aparecerán las propiedades del botón cambiaremos solo dos la que dice “String” la cual nos permite cambiar el nombre que se visualiza en el botón aquí podremos poner lo que sea en este caso pondremos “Toma Foto”(1) la siguiente propiedad que cambiaremos es la que se llama “Tag” aquí es donde cambiaremos el nombre a nuestro botón este nombre es el que reconoce el sistema por lo que siempre debemos de colocar nombres que sean entendible a lo que realiza el botón esto es para mejorar la sintaxis de nuestros códigos pero no es obligatorio!!!!, nosotros colocaremos “AdquiereFoto”(2)
Este paso se debe realizar para cada botón colocando los nombres que se deseen nosotros pondremos los nombres en los “TAG” de “SavePhoto” y “OpenImage” usteden pueden colocar los nombres que deseen, posteriormente pasaremos a la escritura de nuestro código para esto guardaremos nuestro proyecto con el nombre que sea y automáticamente nos enviara a los callbacks de nuestro sistema les aparecerá un edit con información algo asi:
Esto es solo la ultima parte de nuestro código donde están las callbacks de los botones es donde se programara.
Primero se cargara la imagen de nuestra camara para esto en la función principal debemos escribir lo siguiente:
La instrucción “videoinput(‘winvideo’,1,’YUY2_640x480);
Donde:
Winvideo=adaptador de video
1=dispositivo numero
‘YUY2_640x480’= formato de cámara
El formato se puede seleccionar de acuerdo a los formatos que son soportados por nuestra cámara lo que se vio en el principio del tutorial la instrucción “preview” nos permite visualizar la camara en pantalla en el axes1
Poseteriormente se programara el primer botón
La función “getsnapshot” captura la imagen de la cámara.
La programación del segundo botón para guardar la foto tomada
Donde rgb=lo que tenga el axes 1 y pregunta si esta vacio retorna pero si no guarda el archivo con el comando imwrite posteriormente muestra un mensaje indicando la ruta donde se guardo el archivo.
Finalmente programaremos el ultimo botón el cual permite cargar una imagen en el segundo axes:
En este botón simplemente se lee la imagen selecionada en el openfilediaolog y la muestra en el axes2.
Eso fue todo por hoy espero sea entendible el código de no ser asi pues envíenme un mail para cualquier duda