43
Instituto Tecnológico de Hermosillo. INGENIERIA MECATRONICA SISTEMAS INTELIGENTES PRACTICA SISTEMA DE VISION ARTIFICIAL Elaborado por: LÓPEZ LÓPEZ OCTAVIO MARIO GUMARO DUARTE PERALTA Profesor de la asignatura: EDUARDO CHAVEZ MENDIOLA 1

Proyecto Visionartificial 130225191123 Phpapp02

Embed Size (px)

DESCRIPTION

2

Citation preview

Instituto Tecnolgico de Hermosillo.INGENIERIA MECATRONICA

SISTEMAS INTELIGENTES

PRACTICASISTEMA DE VISION ARTIFICIAL

Elaborado por:

LPEZ LPEZ OCTAVIOMARIO GUMARO DUARTE PERALTA

Profesor de la asignatura:EDUARDO CHAVEZ MENDIOLA

Hermosillo, Son., 12 de junio del 2012

INDICE PAGINA1. RESUMEN.32. INTRODUCCION..42.1. Problema a investigar..42.2. Importancia del estudio...42.3. Hiptesis..43. MARCO TEORICO...53.1. Adquisicin de imgenes.53.2. Caractersticas cuantitativas anlisis estadstico de la imagen .53.3. Utilizando MatLab ..63.3.1. Interfaz de MatLab......63.4. Estructura bsica de instrucciones de matlab...63.5. Comprender y observar63.6. Creando una imagen binaria 73.7. Imagen en escala de grises...73.8. Cursor de datos.73.9. Umbral. 73.10. Archivos M .. 73.11. Funciones.. 83.12. Adquisicin de imgenes ..83.13. Utilizando el toolbox de visin con matlab.. 83.14. Obtencin de la informacin del dispositivo 83.15. Captura de la imagen en Matlab .. 93.16. Preparacin del dispositivo...94. METODOLOGIA.105. RESULTADOS.116. CONCLUSIONES.247. REFERENCIAS BIBLIOGRAFICAS..25

1. RESUMENDeteccin de patrones dentro de un entorno mediante el uso de MATLAB.Octavio Lopez L., Instituto Tecnolgico de Hermosillo.Mario G. Duarte P. Instituto Tecnolgico de Hermosillo.Este proyecto est enfocado a la deteccin de patrones mediante visin artificial utilizando un software especial llamado Matlab. Con este software fue posible el poder programar y controlar un dispositivo parecido a un carro de control remoto al cual se le mont una cmara para la deteccin de figuras (en este caso un cuadrado) mediante esta deteccin de figuras el dispositivo pudo seguir a la figura dependiendo de su posicin, esta decisin tomada en base al umbralamiento y gracias al reconocimiento de patrones proporcionado por Matlab.En el proceso de la realizacin del proyecto se llevaron a cabo bastantes pruebas con las cuales se determin y se definieron la mayora de los parmetros para el funcionamiento de este, as como el que figura geomtrica detectar, el rea (en pixeles) de deteccin del cuadrado, etc.El dispositivo se introdujo en un entorno completamente blanco y fue ah con todo exito donde detect el color negro para as no perderse dentro se le puso de frente la figura y este lo sigui sin ningn problema.

2. INTRODUCCION.El siguiente reporte tiene como objetivo el de ensear el uso del procesamiento de imgenes y reconocimiento de patrones con Matlab mediante una cmara con la cual se detecta una figura en particular y con ella un dispositivo en forma de carro mencionado previamente toma la decisin de seguirlo hacia donde este objeto de color negro se encuentre dentro de un entorno completamente blanco, ya sea hacia delante o hacia cualquiera de los dos lados.A continuacin se mostrara a detalle cmo se realiz este trabajo, tanto su construccin, como su programacin, las complicaciones que se tuvieron durante la realizacin de este, as como tambin despus de terminado ya el dispositivo y su programacin.

2.1. Problema a investigar.El Siguiente problema es el de poder construir un dispositivo de visin artificial el cual detecte patrones especficamente esquinas de una figura por medio de una cmara y como complemento el seguirlo a manera de carro hacia donde se le coloque el objeto (en este caso cuadrado). Cmo se disear este sistema de visin?Este sistema de visin ser diseado mediante un software especializado Matlab, que cuenta con una caja de herramientas especfica para este tipo de aplicaciones. Por qu se construir este sistema de visin artificial?Este sistema de visin artificial ser construido con el fin de as poder guiar a un dispositivo con ruedas hacia un objeto con la finalidad de que lo reconozca, enfocndose ms a la deteccin de patrones que hoy en la actualidad muchas empresas lo utilizan para la deteccin de fallos.

2.2. Importancia del estudio.La importancia que este estudio tiene hasta ahorita es de carcter estudiantil, pero de igual forma la aplicacin que este estudio tiene puede abarcar amplias reas en las cuales la visin artificial pueda ser aplicada de una forma en la cual sea de gran ayuda en muchos procesos, ya sea de produccin o de bsqueda, este tipo de sistemas inteligentes hoy en la actualidad son de gran importancia en la industria, y es por tal, que es ahora el momento correcto de que esto se ponga a prueba la construccin de estos en escuelas, ya que con esto se refuerza el conocimiento que podra ser aplicado a la vida real.

2.3. HiptesisTodo el sistema en conjunto ser capaz de poder seguir algn patrn por medio de un tipo seguidor, en el cual la cmara va montada se comunica con la computadora, en la cual se monitorea y detecta hacia donde y como se mueve el carro,

3. MARCO TEORICO.Antes de empezar con la metodologa se tienen que comprender ciertos trminos para as entender por completo el funcionamiento y caractersticas del sistema.1. Adquisicin de la imagen: esta consiste en una videocmara web, o una cmara analgica con una interface de conexin para el procesamiento.2. Procesamiento: esta parte consiste en una computadora personal que est dedicada al procesamiento de imagen.3. Anlisis de la imagen: Un conjunto de herramientas usadas para analizar el contenido de la imagen capturada y encontrar la posicin de un objeto.

3.1. Adquisicin de imgenes La adquisicin de imgenes puede ser usando una cmara de video que utilice diferentes tipos de resoluciones, en esta caso de 320 x 240 pixeles, para esto se tienen dos tipos de cmaras disponibles, cmaras digitales tipo CCD o cmaras analgicas.Las cmaras digitales generalmente tienen una interfaz de conexin a la computadora por puerto USB.Requerimientos de alimentacin: las cmaras CCD dan como resultado imgenes de alta calidad con poco ruido. Estas generan una seal analgica que utilizan un convertidor analgico digital y por lo tanto requieren un consumo alto de energa.El anlisis de la imagen consiste en extraer informacin til a partir de las imgenes capturadas. En primer lugar se deben de definir las caractersticas del objeto haciendo una bsqueda de la imagen. Estas caractersticas del objeto deben ser lo ms solidas posibles. Generalmente con el fin de rastrear o identificar el objeto que se est utilizando, estas caractersticas son:A) ColorB) Intensidad C) Textura o patrn D) Bordes circulares, rayas verticales o rayas rectasE) Estructura, alineacin de los objetos de una manera especifica

3.2. Caractersticas cuantitativas anlisis estadstico de la imagen.A) Centro de gravedad. Punto donde los pixeles deseados pueden estar equilibrados.B) Numero de pixeles. Es un nmero alto de pixeles que indica la presencia de un objeto.C) BLOB, es el rea de pixeles conectada.Matlab proporciona una plataforma muy fcil de usar para la adquisicin y procesamiento de imgenes. Incluso los puertos serie y paralelo se pueden acceder directamente en matlab.Matlab sirve como una herramienta til para los VCM. Proporcionan una poderosa biblioteca, integrada de muchas funciones tiles para el procesamiento de la imagen.

3.3. Utilizando Matlab.Matlab provee un conjunto de libreras que soportan areas de la ingeniera y la ciencia y la simulacin.3.3.1. Interfaz de matlab.Cuando damos doble clic en el icono de matlab podemos observar 3 ventanas: comand window, work space, y command history. Comand window.Esta ventana sirve para describir los comandos y observar los resultados. Work space.Esta ventana muestra las variables definidas dentro de la sesin abierta de matlab. Command history.En esta ventana se almacena una lista de todos los comandos que se han utilizado as como una referencia rpida de cada uno de ellos.

3.4. Estructura bsica de instrucciones de matlab.Dentro de matlab, las variables pueden almacenar matrices asi como tambin se pueden definir para nmeros enteros, nmeros reales o nmeros complejos. Tambin las matrices pueden ser ensambladas en estructuras de arreglos de datos.3.5. Comprender y observar Dentro de matlab la imagen se almacena en una matriz de dos dimensiones, donde dicha matriz contiene los valores de la intensidad y brillo de los pixeles. Un pixel es el punto ms pequeo en una imagen que puede mostrarse en la pantalla, la resolucin de la imagen es igual al nmero de pixeles que pueden ser mostrados en una cuadricula donde las unidades son pulgadas dentro de la pantalla del monitor.Para ver realmente los valores almacenados en la matriz conviene activar los siguientes comandos:>> im(1:10, 1:10)>> figure, imshow(50:150,50;150);

3.6. Creando una imagen binaria.Imagen binaria.Una imagen que contiene solo blanco y negro se le considera una imagen binaria.Por ejemplo:>> imbin= [0 1; 1 0]>> Figure, imshow (imbin, initialmagnification, fit);El negro indica intensidad 0 y el blanco indica intensidad mxima (1)3.7. Imagen en escala de grises.Una imagen en escala de grises contiene valores de intensidades en un rango o intervalo de un cero a un mximo, incluyendo el negro y el blanco normalmente este intervalo se encuentra entre 0 y 255. Asi los valores cercanos a cero son los tonos oscuros de gris, mientras que los valores cercanos a 255 indican un gris claro.Por ejemplo:>> imgray= [0.0 0.2 0.4 0.8 1.0]>> figure, imshow (uint8(imgray); initialmagnification, fit);

3.8. Cursor de datos.Para ver los colores en la ventana de la figura se tiene una opcin en la barra de herramientas que se llama cursor de datos, el cual al estar activado si hacemos un clic en la imagen sobre cualquier punto, podremos ver los valores de RGB por pixeles en la imagen en posiciones X, Y.3.9. Umbral.Una imagen en escala de brises se puede convertir en una imagen binaria pasando por un proceso llamado umbral, el toolbox de procesamiento de imgenes proporciona una funcin.

3.10. Archivos M.Matlab proporciona una facilidad para ejecutar mltiples secuencias de comandos con una sola instruccin. Esto se hace escribiendo el nombre de un archivo extensin .m. es decir se puede crear una funcin en la que manualmente se escriban todos los comandos y se guarden dentro de una funcin en matlab.Hay que recordar que en matlab se pueden crear comentarios los cuales sirven como una herramienta til para poner informacin al momento de ir ejecutando un programa, esto se logra utilizando el smbolo de %.

3.11. Funciones.Las funciones ayudan a escribir de manera organizada el cogido, con un minimo de repeticiones lgicas. Mientras escribe los archivos m, sucede a menudo que un conjunto de instrucciones comunes se utilizan dentro un programa. En lugar de escribir nuevamente el conjunto de instrucciones que se necesita dentro del programa, esto se puede simplificar definiendo una funcin donde tienen que pasar los datos dentro de la funcin, para devolver un resultado.3.12. Adquisicin de imgenes.Antes de continuar con el tema es conveniente revisar el apoyo prestado por la caja de herramientas de ADI de matlab.Hoy en dia la mayora de las cmaras estn disponibles con una interfaz USB. Una vez que esta instalado el controlador de la cmara la computadora detecta el dispositivo cada vez que se conecta. Por otra parte se tiene una cmara de video digital o una cmara CCD deben estar relacionados con una tarjeta de adquisicin de video que hace la funcin de interfaz con la computadora por lo lo que el sistema operativo de Windows detecta automticamente el dispositivo.Con el fin de ejecutar las instrucciones tradicionales de procesamiento de imgenes es necesario utilizar una cmara web USB funcional conectada a su PC.3.13. Utiliando el toolbox de visin con matlab.Resulta de suma utilidad para implementar algoritmos de visin o adquisicin de imgenes en tiempo real utilizando dispositivos simples y de bajo costo tales como las webcams. Matlab incluye el toolbox "Image Acquisition" para este fin.

3.14. Obtencion de la informacin del dispositivo.

Imaqhwinfo Devuelve la informacin del hardware y software disponibles, tales como: Adaptador de video instalado, versin de Matlab, Toolbox (nombre y versin).

Imaqhwinfo(adaptor) Donde adaptor es el nombre del adaptador instalado, por lo general winvideo. Este comando devuelve informacin relacionada al adaptador. Imaqhwinfo(adaptor,DeviceID) Donde DeviceID es el ID del dispositivo a utilizar obtenido con el comando anterior. Si slo se cuenta con un dispositivo conectado el DeviceID ser 1. Este comando muestra informacin del dispositivo conectado (cmara) .

En matlab se puede verificar si la cmara web est disponible o lista. Matlab puede acceder a diferentes tipos de adaptadores de dispositivos de video. Un adaptador utiliza a matlab como un dispositivo para adquisicin de imgenesA continuacin se muestran los siguientes comandos:>> imaghwinfo;>> cam= imaqhwinfo;>> cam.installedAdaptors;>> dev_info= imaqhwinfo (winvideo, 1);

3.15.Captura de la imagen en matlab

Las imgenes capturadas utilizando la herramienta vfm son entregadas al espacio de trabajo en formato RGB. Para capturar las imgenes entregadas por los drivers en el espacio de trabajo de matlab se utiliza la funcin vfm que tiene el siguiente formato ImageCaptured=vfm(grab,n); Donde ImageCaptured es la variable que contiene la imagen RGB, y n es el numero de frames a capturar, en dado caso de que sea mas de uno la variable de la imagen capturada se indexa para recuperar el frame necesario. De tal forma que si se quisiera capturar el frame actual visto por la cmara se procedera a escribir en lnea de comandos:

> >ImageRGB=vfm(grab,1);

> >imshow(ImageRGB);

3.16. Preparacion del dispositivo

Crear la estructura: cam=imaqhwinfo(adaptor,DeviceID)

Para poder obtener las caractersticas del dispositivo con facilidad. Por ejemplo, para obtener los formatos soportados: cam.SupportedFormats

Ejecutar el comando: video=videoinput(adaptor,DeviceID,Format)

Construye un objeto de entrada de video (nexo entre el dispositivo y Matlab). Si no se especifica Format se asume el formato por defecto.

Pre-Visualizacin.Para desplegar la pre-visualizacin de las imgenes a capturar ejecutar el comando: preview(video).>> Preview (video)Captura.Para capturar una imagen ejecutar: Image=getsnapshot(cam)

4. METODOLOGIA.

El presente proyecto de desarrollo en la ciudad de Hermosillo, en distinto lugares, se tuvieron muchos inconvenientes en este sentido ya que no se contaba con una rea de trabajo totalmente adecuada para trabajar, fue necesario trabajar en distintos lugares, en aulas de clases, laboratorios y en nuestras casas.Este trabajo fue realizado bajo diseo experimental ya que dentro de este se tuvieron que manejar bastantes variables, que fueron necesarias para poder lograr el objetivo del sistema en conjunto con su cmara como los que fueron la longitud de pixeles, el rea, igual en pixeles el control de giro de los motoreductores, entre otras cosas.Para la elaboracin de todo el proyecto podemos dividi su metodologa en 3 partes: Diseo Electronico Programacion (MatLAb y Pics) Armado del prototipoDiseo ElectronicoEn el diseo electrnico, incluimos la comunicacin bluetooth, comunicacin por radio frecuencia, control, y una etapa de potencia, a continuacin se entrara en detalle en cada una de estas etapas.Comunicaciones inalmbricasUn problema critico que se tuvo para el diseo del carrito para que fuera inalmbrico, fue la transmicion de imgenes del prototitpo hacia una computadora de manera inalmbrica. Se consideraron posibles alternativas, se evaluaron su factibilida y/o compatibilidad con Matlab y se decidio por instalar un kit inalmbrico de transmicion de imgenes por radio frecuencia, debido al bajo costo y a la falta de tiempo para investigar otros protocolos de comunicacin. Los componentes que conforman el kit son los siguientes: Video Camara Receptor de video con antena Adaptador RCA a USB Cable AV(RCA)La cmara consta de 3 cables, dos de ellos son para transmitir audio y video los cuales en nuestro caso se quedaron desconectados, ya que la transmicion se realiza por medio de una antena ya integrada a la cmara. Un tercer cable es para alimentar a la cmara con una batera de 9 volts. A continuacin se muestra una imagen de la cmara:

La seal transmitida desde de la cmara por medio de la antena integrada a la camapara es capturada por un receptor el cual posee salidas RCA de video para ser vistas en alguna pantalla, DVD etc. A continuaciokn se muestra una imagen de este equipo:

Para poder trabajar con las imgenes para su posterior procesamiento, la salida de video del reciber se conecto a un adapatador USB que convierte la seal de video RCA a USB (digital). Con este ultimo paso tenemos comunicacin inalmbrica entre la cmara y una computadora, listo para procesar imgenes en MatLab tomadas desde el prototipo y transmitidas inalambricamente. A continuacin se muestra una imagen de dicho adaptador.

Otro aspecto muy importante es la comunicacin inalmbrica para el control del prototipo (carrito). Una vez que se han procesado las imgenes se genera un resultado de dicho proceso y esta informacin se enviara inalmbricamente al dispositivo. Analizando los toolbox de Matlab el dispositivo mas factible es la comunicacin bluetooth, ya que Matlab cuenta con el toolbox Instrument Control Toolbox, en el apartado de programacin se entrara en detalle.

El modulo Bluetooth cuenta con salidas y entradas seriales en niveles TTL, con esto nos permitio recibir datos desde una computadora y comunicarlo con un microcontrolador mediante el protocolo de comunicacin serial RS-232. De esta manera contamos con la comunicacin inalmbrica desde la computadora hacia el prototipo para enviarle la informacin necesaria para el control de los motores. A continuacin se muestra una imagen del modulo bluetooth y su diagrama de conexionamiento.

En la imagen anterior se puede observar la conexin que se realizo entre el modulo bluetooth y el microcontrolador para la transmicion de datos seriales. En el apartado de etapa de potencia se ablara sobre el LM293 y su funcionamiento, y en el apartado de programacin de microcontroladores se ablara sobre el por que se conectaron de esta manera.

ControlEl microcontrolador realiza el control de los motores, utilizando los pines RB0, RB1, RB2, RB3, utilizando RB0 y RB1 para controlar el sentido de giro de un motor, sacando por estos pines conbinaciones (0 0, 0 1, 1 0, 1 1) y de igual manera para el segundo motor utilizando los pines RB2 y RB3. De esta manera se logro controlar los dos motores. En el apartado de la etapa de potencia se explica a detalle las conexiones del LM293.

Etapa de potenciaPara suministrar un voltaje de 5 volts a los motores de corriente directa, se utilizo el driver LM293, este driver cuenta con dos canales repartidos en 2 entradas y 2 salidas por canal, adems de los enables que se alimentan directamente a 5 volts para activar los canales. Los pines RB0 y RB1 se conectaron al canal 1, de tal manera que cuando el RB0=0 y RB1 el motor gira en un sentido al cambiar los valores a RB0=1 y RB=0 el motor cambia de giro. Se realiza exatamente lo mismo para el segundo motor. La alimentacin de todo el circuito se realizo con dos bateras de 3.6V a 700mA conectadas en seria para aumentar el torque y pasando por una etapa de regulacin de voltaje con un 7805 para mantener un voltaje de 5volts estable. De esta manera tenemos la potencia suficiente para poder hacer girar los motores con el suficiente torque.Programacion (MatLab y PICS)MatLab

Una vez teniendo el circuito electrnico bien definido con todos las comunicacione bien definidas se procedio a la programacin de los componentes necesarios. El programa principal, el del control del prototipo y el procesado de las imgenes se realizo en Matlab. Se utilizo una interface grafica para la programacin, a continuacin se muestra una imagen de dicha interface grafica.

El programa consta de 3 botones principales, Encender Camara, Iniciar Procesamiento y Apagar Camara, como su nombre lo indica estos botones realizan las funciones de encender la cmara, iniciar el procesamiento de imgenes y apagar la cmara. Cuenta con dos reas de graficacion una para mostrar las imgenes a color (formato RGB24_320*240), y otra rea mas pequea donde se grafica la imagen pero binarizada por un umbral, este umbral se controla por medio de un slider que se encuentra arriba del rea de graficacion. Cuenta con un edit text para indicar los movimientos que deben de tener los motores, adems de 3 edit text para indicar las coordenadas del centroide de la figura y para mostrar el rea del objeto. Por ultimo cuenta con un ultimo edit text para indicar el estado del carrito, si esta buscando el objetivo o si ya lo detecto. Adems cuenta con un control manual, para posicionar el carrito de manera manual en la posicin deseada incial, para despus iniciar el procesamiento y desactivando el control manual y activando el control automatico.Lo anterior descrito es una descripcin breve de la interface grafica, ahora pasaremos a la forma de programacin y el funcionamiento del programa.

Cuando se corre el programa lo primero que aparece es la interface grafica, como se mostro en la imagen anterior, al mismo tiempo tambin habilita la comunicacin con el bluetooh utilizando el bluetooth de la computadora, con la instruccin blue=Bluetooth(nombre_dispositivo,1) donde el 1 representa el canal de comunicacin, y con la instrucion fopen(nombre_dispositivo) para abrir la comunicacin.

Cuando se presiona el botn iniciar procesamiento lo primero que realiza lo que realiza el programa es entrar en un siglo infinito y tomar una foto y mostrarla en un axes principal, despus la procesa hasta obtener una imagen binarizada con un umbral regulado por el usurario mediante un slider, despus se la da un procesamiento para eliminar pixeles exedentes o ruido, primero dilatando la imagen (agregacin de pixeles en la frontera) y despus erosionndola (eliminacin de pixeles en la frontera), una vez lista la imagen se realiza un barrido de la imagen recorriendo cada pixel de la imagen por columnas y filas, y checando en el barrido cuales pixeles estn en blanco, cuando encuentra un pixel en blanco pasa a una serie de instrucciones para determinar si es una esquina especifica de un cuadrado. Por ejemplo para detectar la esquina superior izquierda, en ese pixel que se encuentra verefica que el pixel de arriba este en negro, el de la derecha en blanco, el de abajo en blando y el de la izquierda en negro, de esta manera se garantiza que ese pixel es la esquina superior esquierda y el mismo procedimiento se realiza para las cuatro esquinas. Cuando detecta que una esquina esta presente, pone en uno una variable para indicar que se detecto la esquina, al final de aver pasado por el chequeo de las 4 esquinas, revisa las variables, y si las 4 valen 1, quiere desir que se detectaron 4 esquinas, entonces enva a un edit que se detecto el objetivo, si alguna de las variables no vale uno, aparece en ese mismo edit buscando objetivo y no realiza ninguna accin. En el caso que detecte satisfactoriamente las cuatro esquinas del objetivo pasa a una serie de funciones, primeramente para calcular el centroide del objetivo, graficarlo y calcular el rea del objetivo y mostralo en los edit text. Como nada mas importa el control del carrito hacia a la derecha y hacia la izquierda se tomo la coordenada del centroide en y, y entra a una serie de condiciones donde se evaluava el valor de la coordenada y si era menor o igual a 120(pixeles) pasa a escribir un dato por el bluetooth para hacer girar el carrito hacia la izquierda, de no cumplir esta condicin pasa a otra condicin, si la coordenada es mayor o igual a 200 pasa a escribir en el bluetooth un dato para hacer girar los motores hacia la derecha, de no cumplir esta condicin, pasa a revisar si esta dentro del rango 120-200 de ser haci quiere desir que el centroide esta en el centro de la imagen, y pasa a revisar el tamao de la imagen si el rea de la imagen esta por arriba de un set point, quiere desir que ya esta suficientemente cerca, por lo que escribe un sero en puerto bluetooth para apagar los motores, si es menor que el valor del set point escribe en el bluetooth un dato para indicar que avanze el carrito, por lo tanto escribe un dato en el bluetooth para hacer que avanze el carrito, dependiento de cual condicin alla sido verdadera pasa a escribir en un edit text el sentido de giro de los motores. Despus de todo esto se inicializan las variables en 0, que se usaron para indicar que se detecto una esquina. Habiendo echo esto termina una corrida completa del ciclo infinito y comienza otra vez desde el inicio. Los datos que se mandaron desde matlab por el bluetooth hacia el microcontrolador van en una secuenca determinada para que lo nico que realice el microcontrolador es pasar el dato al puerto B. a continuacin se muestra el programa completo.

function varargout = Prueba_3(varargin)% PRUEBA_3 MATLAB code for Prueba_3.fig% PRUEBA_3, by itself, creates a new PRUEBA_3 or raises the existing% singleton*.%% H = PRUEBA_3 returns the handle to a new PRUEBA_3 or the handle to% the existing singleton*.%% PRUEBA_3('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in PRUEBA_3.M with the given input arguments.%% PRUEBA_3('Property','Value',...) creates a new PRUEBA_3 or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before Prueba_3_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to Prueba_3_OpeningFcn via varargin.%% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one% instance to run (singleton)".%% See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help Prueba_3 % Last Modified by GUIDE v2.5 10-Jun-2012 17:29:06 % Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Prueba_3_OpeningFcn, ... 'gui_OutputFcn', @Prueba_3_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []);if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1});end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});else gui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT % --- Executes just before Prueba_3 is made visible.function Prueba_3_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to Prueba_3 (see VARARGIN) % Choose default command line output for Prueba_3handles.output = hObject; % Update handles structureguidata(hObject, handles); % UIWAIT makes Prueba_3 wait for user response (see UIRESUME)% uiwait(handles.figure1);fondo1=imread('vision_1.jpg'); %carga una imagen de fondoimshow(fondo1,'parent',handles.axes1); % y la direcciona a un axes fondo2=imread('vision_2.jpg'); %carga una segunda imagen de fondoimshow(fondo2,'parent',handles.axes2); % y la direcciona a otra axes %bt=Bluetooth('Mario-Bluetooth',1); % crea el objeto de bluetooth%fopen(bt); % y abre la comunicacion%handles.bt=bt; guidata(hObject, handles); % --- Outputs from this function are returned to the command line.function varargout = Prueba_3_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structurevarargout{1} = handles.output; % --- Executes on button press in encender_camara.function encender_camara_Callback(hObject, eventdata, handles)% hObject handle to encender_camara (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) vid=videoinput('winvideo',1,'YUY2_320x240'); % configuracion de la web-camhandles.vid=vid; % redireccionamiento de la variable triggerconfig(vid,'manual'); % activacion de la camara manualmenteset(vid,'FramesPerTrigger',1); % solo tomara una fotoset(vid,'TriggerRepeat',Inf); set(vid,'ReturnedColorSpace','rgb'); % la imagen estara en formato rgbstart(vid); %inicializa la camara set(gcf,'DoubleBuffer','on','renderer','painters');guidata(hObject, handles); % --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) while 1 trigger(handles.vid); %prepara la camara im_rgb=getdata(handles.vid); %toma una fotogradia imagesc(im_rgb,'parent',handles.axes1); % y la manda a un axes im_gray=rgb2gray(im_rgb); %convierte la imagen de color a escalas de grises val_umbral=get(handles.slider1,'value'); % toma el valor de umbralamiento im_bin=im_gray=120 && (cy/t)