Editor de imágenes usando matlab

Solo disponible en BuenasTareas
  • Páginas : 7 (1631 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de abril de 2011
Leer documento completo
Vista previa del texto
Introducción

A continuación se presentará un editor de imágenes utilizando la interfaz gráfica de MATLAB. El mismo tendrá al menos 5 funciones propias de este tipo de programas, tales como:

Cargar Imagen: esto le permitirá al usuario buscar la imagen de su preferencia que se encuentre en el computador en un dispositivo de almacenamiento externo.
Modelo de color: la imagen puede serllevada al modelo de color deseado y posible como por ejemplo, escala de grises o RGB.
Contraste: que se define como la diferencia relativa en intensidad entre un punto de una imagen y sus alrededores, el usuario podrá variar el contraste.
Brillo: que es la propiedad de luminosidad u oscuridad de un color también se podrá variar, dependiendo de las necesidades de la imagen.
Rotar: la imagen se podrágirar en diferentes ángulos, en la dirección de las manecillas del reloj.

DESARROLLO
En esta parte se presentarán cada una de las sentencias ejecutadas para llevar a cabo este proyecto y su respectiva explicación.
Para la función de cargar la imagen se utilizó el siguiente código:
function CargarImagen_Callback(hObject, eventdata, handles)
% hObject handle to CargarImagen (see GCBO)
%eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[nombre, ruta]=uigetfile({'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','All Files' },'Mis Imagenes',...
'C:\usuarios\user.jpg');
axes(handles.axes1);
a=imread(strcat(ruta,nombre));
handles.CargarImagen=a;
imshow(a);guidata(hObject, handles);

Uigetfile: esta es una función que nos permite cargar archivos, de un medio de almacenamiento secundario, en matlab, la sintaxis de la misma podría ser:

[filename,pathname] = uigetfile({'*.bmp';'*.jpg';'*.gif'}, 'Seleccione imágenes:');
El primer argumento es un cell array de string donde se especifican las extensiones de los archivos , en este caso de tipo imagen, quepodremos abrir en MATLAB a través de un cuadro de diálogo que nos permitirá navegar por el sistema de archivos de nuestro computador. El segundo argumento simplemente es el título que queremos mostrar en el cuadro de diálogo.
La salida de la función son: el nombre del archivo seleccionado (filename) y la ruta en donde se ubica (pathname).De manera que, uigetfile() nos permite seleccionar un determinadoarchivo (en este caso un archivo de imagen) empleando un cuadro de diálogo, y conocer su nombre y path.
Imread: se utiliza para abrir el archivo, en este caso la imagen. Como el uigetfile nos devuelve el nombre de la imagen y la ruta donde se encuentra, para poder abrirla con la función imread hay que concatenar los parámetros que devuelve uigetfile. Eso fue lo que se hizo aqui:a=imread(strcat(ruta,nombre));

Imshow: permite mostrar la imagen en la pantalla.

Función para arreglar el contraste:
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)
imagen=handles.CargarImagen;

srgb2lab =makecform('srgb2lab');
lab2srgb = makecform('lab2srgb');

shadow_lab = applycform(imagen, srgb2lab); % convert to L*a*b*

% the values of luminosity can span a range from 0 to 100; scale them
% to [0 1] range (appropriate for MATLAB(R) intensity images of class double)
% before applying the three contrast enhancement techniques
max_luminosity = 01;
L = shadow_lab(:,:,1)/max_luminosity;

%replace the luminosity layer with the processed data and then convert
% the image back to the RGB colorspace
shadow_imadjust = shadow_lab;
shadow_imadjust(:,:,1) = imadjust(L)*max_luminosity;
shadow_imadjust = applycform(shadow_imadjust, lab2srgb);

axes(handles.axes2);
imshow(shadow_imadjust);


guidata(hObject, handles);

Imadjust: lo que hace esta función es que aumenta el...
tracking img