Realizar una interfaz grfica de usuario que tenga las siguientes caractersticas: 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 travs 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 algn 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 imgenes 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 grfica realizaba lo que se haba pedido a continuacin presentamos los resultados de esta practica. Interfaz grfica
Se escogi este diseo ya que a mi parecer es muy amigable e intuitivo y puede ser manipulado por cualquier persona. CDIGO 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
botn cargar imagen global foto; %define una foto como una variable global [nombre camino] = uigetfile({'*.jpg';'*.png';'*.bmp'},... 'Seleccionar un archivo grfico'); %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
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);
botn 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 realizacin de esta prctica tuve varias dudas ya que no saba cmo utilizar algunos comandos, esto lo solucione observando algunos documentos y videos que busque en internet. CONCLUCIONES Esta prctica fue complicada ya que fue la primera practica que tuve que realizar yo solo, anteriormente haba realizado prcticas de este tipo pero siempre lo hacamos copiando de la toolbox de adquisicin de imgenes, finalmente el desempeo de la interfaz grfica fue el deseado. Men para seleccionar efecto deseado Botn para abrir cualquier imagen Foto seleccionada Al presionar este botn guardamos la imagen con los efectos seleccionados