You are on page 1of 6

DESARROLLO Y PROCEDIMIENTO

 planteamiento del problema
Realizar una interfaz gráfica de usuario que tenga las siguientes características:
1. La G. U. I. permite al usuario cargar cualquier imagen digital.
2. Cuando el usuario selecciona el archivo, se muestra la imagen en un objeto
‘axis’.
3. A través de un menú, el usuario puede seleccionar entre lo siguiente:
a) Descomponer la imagen en sus planos RGB.
b) Convertir a escala de grises.
c) Convertir a Blanco y negro.
d) Umbral.
Cuando el usuario selecciona cualquiera de las opciones anteriores, el programa
responde adecuadamente, por ejemplo, si el usuario selecciona ‘Convertir a
escala de grises’, obviamente se mostrará la imagen en escala de grises sin dejar
de mostrar la imagen original.
4. Cuando del menú se seleccione ‘umbral’, se debe permitir al usuario elegir el
nivel de umbralizacion por medio de un objeto ‘slider’ o algún otro objeto que se lo
permita.
5. La imagen original no debe desaparecer de la pantalla de la G. U. I.
6. Cualquiera de las imágenes obtenidas (escala de grises, planos RGB, blanco y
negro, umbral) puede ser guardada por el usuario si así lo desea y lo puede hacer
en cualquier momento.

 Resultados
El resultado fue el esperado, ya que la interfaz gráfica realizaba lo que se había
pedido a continuación presentamos los resultados de esta practica.
 Interfaz gráfica

Se escogió este diseño ya que a mi parecer es muy amigable e intuitivo y puede
ser manipulado por cualquier persona.
 CÓDIGO M
Opening function
set(gcf,'currentaxes',handles.axes1); %establece el objeto axes1 como el
actual
axis off; %deshabilita los ejes
set(gcf,'currentaxes',handles.axes2); %establece el objeto axes2 como el
actual
axis off; %deshabilita los ejes
set(gcf,'currentaxes',handles.axes3); %establece el objeto axes3 como el
actual
axis off; %deshabilita los ejes
set(gcf,'currentaxes',handles.axes4); %establece el objeto axes4 como el
actual
axis off; %deshabilita los ejes

set(handles.popupmenu1,'Enable','off'); %desactivamos el menu 1
set(handles.popupmenu2,'Enable','off'); %desactivamos el menu 2
set(handles.popupmenu3,'Enable','off'); %desactivamos el menu 3
set(handles.slider1,'Enable','off'); %desactivamos el slider 1
set(handles.slider2,'Enable','off'); %desactivamos el slider 2
set(handles.slider3,'Enable','off'); %desactivamos el slider 3
set(handles.pushbuttongi1,'Enable','off'); %desactivamos el boton 1
set(handles.pushbuttongi2,'Enable','off'); %desactivamos el boton 2
set(handles.pushbuttongi3,'Enable','off'); %desactivamos el boton 3

botón cargar imagen
global foto; %define una foto como una variable global
[nombre camino] = uigetfile({'*.jpg';'*.png';'*.bmp'},...
'Seleccionar un archivo gráfico');
%leer una imagen del archivo y almacena en la matriz foto
foto = imread([camino nombre]);
set(gcf,'currentaxes',handles.axes1); %hace que axes1 sea los ejes
actuales
imshow(foto);%muestra una imagen

set(handles.popupmenu1,'Enable','on'); %activa el menu 1
set(handles.popupmenu2,'Enable','on'); %activa el menu 2
set(handles.popupmenu3,'Enable','on'); %activa el menu 3

menú 1, 2 y 3
global foto;
set(handles.pushbuttongi1,'Enable','on');
valor = get(handles.popupmenu1,'value');
switch valor
case 1
set(handles.slider1,'Enable','off');
%mostrar el plano rojo

rojo = foto(:,:,1);
rojo(:,:,2) = 0;
rojo(:,:,3) = 0;
set(gcf,'currentaxes',handles.axes2);
imshow(rojo);

case 2
set(handles.slider1,'Enable','off');
%mostrar el plano verde

verde(:,:,2) = foto(:,:,2);
verde(:,:,3) = 0;
set(gcf,'currentaxes',handles.axes2);
imshow(verde);

case 3
set(handles.slider1,'Enable','off');
%mostrar el plano azul

azul(:,:,3) = foto(:,:,3);
set(gcf,'currentaxes',handles.axes2);
imshow(azul);

case 4
set(handles.slider1,'Enable','off');
grises1=rgb2gray(foto);
set(gcf,'currentaxes',handles.axes2);
imshow(grises1);

case 5
set(handles.slider1,'Enable','off');
bw1=im2bw(foto);
set(gcf,'currentaxes',handles.axes2);
imshow(bw1);

case 6
set(handles.slider1,'Enable','on');
umbral= get(handles.slider1,'Value');
bw = im2bw(foto,umbral);
set(gcf,'currentaxes',handles.axes2);
imshow(bw);

slider 1, 2 y 3
global foto;
umbral= get(handles.slider1,'Value');
bw = im2bw(foto,umbral);
set(gcf,'currentaxes',handles.axes2);
imshow(bw);

botón guardar imagen 1, 2 y 3.
set(gcf,'currentaxes',handles.axes2);
rgb = getimage(handles.axes2);
if isempty(rgb), return, end
formatos = {'*.jpg','JPEG (*.jpg)';'*.tif','TIFF (*.tif)'};
[nomb,ruta] = uiputfile(formatos,'GUARDAR IMAGEN');
if nomb==0, return, end
fName = fullfile(ruta,nomb);
imwrite(rgb,fName);

 EXPLICACION INTERFAZ GRAFICA



.


OBSERVACIONES
Durante la realización de esta práctica tuve varias dudas ya que no sabía cómo
utilizar algunos comandos, esto lo solucione observando algunos documentos y
videos que busque en internet.
CONCLUCIONES
Esta práctica fue complicada ya que fue la primera practica que tuve que realizar
yo solo, anteriormente había realizado prácticas de este tipo pero siempre lo
hacíamos copiando de la toolbox de adquisición de imágenes, finalmente el
desempeño de la interfaz gráfica fue el deseado.
Menú para seleccionar
efecto deseado
Botón para abrir
cualquier imagen
Foto
seleccionada
Al presionar este
botón guardamos la
imagen con los
efectos seleccionados