Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
EXAMEN PDS
2) OBJETIVO ESPECIFICO
Los siguientes son los pasos que realizare para una mejor comprensión para la
programación de CONVOLUCION utilizando el GUIDE en MATLAB 7.8 seran:
Ingresar a un GUIDE
Entender y utilizar sus herramientas
Manejo de códigos del GUIDE
Realizar el Botón 1
Realizar el Botón 2
Realizar el Botón 3
Realizar el Botón 4
Realizar el Botón 5
Realizar el Botón 6
Realizar el Botón 7
Realizar el Botón 8
Realizar el Botón 9
Realizar el Botón 10
Ingresar una imagen en formato .jpg de tamaño 320x426 pixeles
Visualizar los resultados de las imágenes filtradas por cada uno de los
Botones
2) Aspectos teóricos
>> f = imread('chestxray.jpg')
>> f = imread('D:\imagenes\chestxray.jpg')
>> f = imread('/home/user/chestxray.jpg')
una imagen de color RGB (la mas usada para la visión computacional, además de
ser para matlab la opción default) es representada por una matriz tridimensional m
x n x p, donde m y n tienen la misma significación que para el caso de las
imágenes de escala de grises mientras p representa el plano, que para RGB que
puede ser 1 para el rojo, 2 para el verde y 3 para el azul. La figura 2.2muestra
detalles de estos conceptos
> >image=imread(’data.jpg’);
En el caso de imágenes RGB (tal como se explico arriba) estas cuentan con 3
planos uno para cada color que representa. Consideremos ahora que la imagen
RGB contenida en la variable image2 es la mostrada en la figura 2.3, y deseamos
obtener cada uno de los planos que la componen. Entonces escribiríamos:
Si se deseará manipular un píxel de una imagen a color RGB este tendrá un valor
para cada uno de sus planos correspondientes. Supongamos que tenemos la
imagen RGB contenida en la variable image2 y deseamos obtener el valor del
píxel m=100 y n=100 para cada uno de los diferentes planos R, G y B.
> >valueR=image2(100,100,1) ;
> >valueG=image2(100,100,2) ;
> >valueB=image2(100,100,3) ;
Como hacer un proyecto en GUIDE
Editor del documento .m (M-file Editor): con esta opción se podrá editar
las propiedades de los objetos.
Menú desplegable (Popup Menu).- Los pop-up menús difieren de los menús de
interfaz con el usuario en que pueden aparecer en cualquier punto de la ventana
de figura, mientras que los menús de interfaz con el usuario solo se localizan en la
parte superior.
Presión botón (Push button).- generan una acción cuando das click con el
puntero del ratón sobre ellos. Cuando usted da click en un push button, aparece
presionado; Cuando sueltas el botón del ratón, el botón aparece levantado; y su
rutina de llamada se ejecuta.
Botón de radio (Radio Button).- Cuando solo se usa un botón de radio, no existe
diferencia funcional alguna con respecto a una casilla de verificación. Por otro
lado, los botones de radio en grupo son mutuamente exclusivos (es decir, si un
botón esta encendido, todos los demás botones se apagan), mientras que las
casillas de verificación son independientes entre sí. Sin embargo, esta
características exclusiva de los botones de radio sólo puede implementarse
mediante la programación del usuario en la cadena de invocación.
Barra deslizadora (Slider).- Los sliders aceptan datos de entrada numéricos con
un rango especifico. Los usuarios mueven la barra dejando presionado el botón
del mouse y arrastrándola, Dando click en el canal, en la flecha. La posición de la
barra indica un valor numerico.
Marcos (Frame).- El estilo marcos puede servir para agrupar dispositivos como lo
botones de radio o las casillas de verificación.
Botón de palanca (Toogle Button).- El toggle button genera una acción que
indica un estado binario (on o off). Cuando das click en un toggle button , aparece
presionado y permanece así hasta que sueltes el boton de el mouse, y en ese
momento ejecuta la llamada. Un click del mouse subsecuente regresa al toggle
button a su estado original y vuelve a ejecutar la rutina de llamada.
Cajas de lista (Listbox). El componente List Box muestra una lista de artículos y
permite a usuarios seleccionar unos o más artículos.
Estos son todos los comandos que usaremos en la creación de este programa.
4) aspectos prácticos
Color de Fondo
Tipo Letra
Tamaño letra
Color Letra
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 codigo is made visible.
function codigo_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 codigo (see VARARGIN)
% --- Outputs from this function are returned to the command line.
function varargout = codigo_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)
cform = makecform('srgb2lab');
lab_imagenASegmentar = applycform(imagenASegmentar,cform);
a = lab_imagenASegmentar(:,:,2);
b = lab_imagenASegmentar(:,:,3);
color_markers = repmat(0, [nColors, 2]);
disp(sprintf('[%0.3f,%0.3f]',color_markers(2,1),color_markers(2,2)));
color_labels = 0:nColors-1;
a = double(a);
b = double(b);
distance = repmat(0,[size(a), nColors]);
cform = makecform('srgb2lab');
lab_imagenASegmentar = applycform(imagenASegmentar,cform);
a = lab_imagenASegmentar(:,:,2);
b = lab_imagenASegmentar(:,:,3);
color_markers = repmat(0, [nColors, 2]);
disp(sprintf('[%0.3f,%0.3f]',color_markers(2,1),color_markers(2,2)));
color_labels = 0:nColors-1;
a = double(a);
b = double(b);
distance = repmat(0,[size(a), nColors]);
global segmented_images
imshow(segmented_images(:,:,:,1)), title('objetos rojos');
rgb = getimage(handles.axes1);
%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,'5.jpg');
figure(1),imshow(imagen1),title('Imagen 1');
figure(2),imshow(imagen2),title('Imagen 2');
figure(3),imshow(imagen3),title('Imagen 3');
figure(4),imshow(imagen4),title('Imagen 4');
figure(5),imshow(imagen5),title('Imagen 5');
figure(6),imshow(imagen6),title('reestructuracion');
% hObject handle to pushbutton10 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
Resultado de la manipulación
Restauración de imagen
5) Conclusión
Con el presente trabajo llegamos a cumplir los objetivos que nos trazamos en un
principio, resolver el programa que realiza una manipulación de colores de de una
imagen, podemos observar gracias al GUIDE
Con la realización de este proyecto también notamos que la interfaz de usuario es
muy práctica para la realización de programas.
6) Bibliografía
http://www.matpic.com/MATLAB/MATLAB_GUIDE.html
Manipulación de colores en matlab7.8
http://www.scribd.com/doc/15532859/MANUAL-DE-GUI-EN-MATLAB
http://www.youtube.com/watch?v=xfMXWCX6Ei4