Guia Basica de GUI Imagenes Matlab

Share Embed Donate


Short Description

Download Guia Basica de GUI Imagenes Matlab...

Description

CONSTRUCCIÓN DE LA INTERFAZ GRÁFICA DE MATLAB (Principios fundamentales) 1. Abrir el GUI. En la barra de herramientas hacer clic en el icono respectivo (1) para ingresar al GUI. En la siguiente ventana escoger la opción por defecto (2) y presionar OK (3).

1

2

3

Por defecto aparece la ventana de trabajo en blanco, allí se selecciona la herramienta Push Button (1), y en la cuadrícula se describe un rectángulo para la creación de un botón (2), este botón por defecto es denominado pushbutton1. El nombre del botón y su denominación se pueden modificar haciendo doble clic sobre él y redefiniendo los parámetros de Tag y String. Por ahora se modifica el campo String y allí se coloca el texto “mostrar” (3).

1

3

2

Haciendo un clic derecho sobre el botón, se selecciona la opción “View Callbacks>>Callback”, allí se visualiza el código a ser ejecutado. En la parte inferior de la línea “ function pushbutton1_Callback(hObject, eventdata, handles)” se inserta la instrucción “ msgbox('Esta es la imagen a mostrar')” (1). Si con anterioridad no se había guardado el programa deberá hacerlo asignándole su nombre y la ubicación adecuada.

1

Volviendo a la ventana de la interfaz se hace clic sobre el botón de ejecución (RUN) (1), y cuando aparece la ventana de la aplicación se hace clic sobre el botón “Mostrar” (2) y enseguida aparece el mensaje de texto indicado.

1

2

Se pueden cerrar las aplicaciones para volver a la ventana de edición de la interfaz.

2. Mostrar una imagen De nuevo en la ventana de edición de la interfaz se adiciona un componente denominado “Axes” , para esto se pica en la herramienta respectiva (1) y se describe un cuadrado en el área de edición, allí aparece el cuadro axes1 con una cruz en su interior. Seguidamente se adiciona el código a=imread('balon5.jpg');imshow(a); justo antes del código adicionado anteriormente para la visualización del cuadro de diálogo. En el siguiente gráfico se aprecia esta nueva apariencia asociada al botón 1. Se ejecuta de nuevo el programa (F5) y se presiona sobre el botón mostrar (2) y aparece en el recuadro la imagen respectiva.

2 1

3. Mostrar varias imágenes Para el presente ejercicio se pretende visualizar inicialmente dos imágenes y una vez se presiona el botón, éstas cambian a formato blanco y negro. Para este propósito se debe ingresar un nuevo componente axes como en el caso anterior, este nuevo objeto por defecto tiene como nombre axes2.

1

2

En cuanto al código asociado se debe insertar en la parte final de la función cuyo encabezado contiene: % --- Executes just before Interfaz is made visible. function Interfaz_OpeningFcn(hObject, eventdata, handles, varargin)

A continuación se presenta el código completo asociado a esta función que es ejecutada, como lo indica su encabezado, un instante antes de que se haga visible la interfaz.

% --- Executes just before Interfaz is made visible. function Interfaz_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 Interfaz (see VARARGIN) % Choose default command line output for Interfaz handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes Interfaz wait for user response (see UIRESUME) % uiwait(handles.figure1); axes(handles.axes1) fondo = imread('balon1.jpg'); axis off; imshow(fondo); Código %*-*-*-*-*-*-*-*-*-*-*-*-*-* axes(handles.axes2) insertado fondo = imread('balon2.jpg'); axis off; imshow(fondo);

La programación referente a los botones contiene el código adicional siguiente: % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes1) nn=imread('balon1.jpg'); a=im2bw(nn,.6); axis off; imshow(a); axes(handles.axes2) nn=imread('balon2.jpg'); a=im2bw(nn,.6); axis off; imshow(a);

Código insertado modificado

msgbox('Esta es la imagen a mostrar') guidata(hObject, handles); % Obligatoria para que guarde los datos

Según la codificación anterior se debe tener en cuenta que antes de visualizar cualquier imagen con “imshow” se especifica el lugar (ó axes) para ser mostrado, en este caso se indica con la línea previa axes(handles.axes2). En donde el último subíndice especifica el lugar o campo de axes respectivo.

En la ejecución del programa se tiene que inicialmente se visualizan dos imágenes y cuando se presiona el botón mostrar, éstas imágenes son convertidas a blanco y negro con un nivel de comparación de 0.6 como está especificado en el código. En el siguiente gráfico se aprecian los resultados en la ejecución inicial y después de presionar el botón.

4. Control con slider El componente “Slider” es un elemento de entrada de información para la interfaz por parte del usuario. El rango de valores por defecto está establecido entre [0 y 1.0], por tanto para este ejercicio no se va a manipular este parámetro.

1

2

Para agregar este componente se activa con un clic como se indica en el gráfico (1) y seguidamente se describe un rectángulo en el área de trabajo de la interfaz (2). Este objeto también genera su código asociado en donde se complementa con la información descrita a continuación.

% --- Executes on slider movement. function slider1_Callback(hObject, eventdata, handles) % hObject handle to slider1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'Value') returns position of slider % get(hObject,'Min') and get(hObject,'Max') to determine range of slider axes(handles.axes1) nivel=get(hObject,'Value'); nn=imread('balon1.jpg'); a=im2bw(nn,nivel); axis off; imshow(a); axes(handles.axes2) nivel=get(hObject,'Value'); nn=imread('balon2.jpg'); a=im2bw(nn,nivel); axis off; imshow(a);

Código insertado

En esencia se muestra la misma codificación del programa anterior, la variación está en la sentencia “get(hObject,'Value');” que corresponde a la captura del valor actual del Slide cuando ha sido manipulado, este valor es asignado a una variable denominada nivel que es utilizada para realizar la conversión a blanco y negro de las dos imágenes relacionadas para ser visualizadas finalmente en su respectiva ventana (Axes). La representación visual se presenta a continuación en su condición inicial y cuando ha sido manipulado el control “Slider” a un nivel alto (1).

1

Faiver Humberto Trujillo González [email protected] 2010

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF