Вы находитесь на странице: 1из 6

DESARROLLO Y PROCEDIMIENTO

planteamiento del problema


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

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);

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

Вам также может понравиться