10 junio 2009

Cómo mostrar una imagen transformada con fft2 en GUIDE usando MATLAB7

Este ejemplo es para complementar el ejemplo anterior de “Un ejemplo simple de una interfaz gráfica usando GUIDE en MATLAB para Procesamiento Digital de Imágenes”. En esa ocasión el énfasis que puse fue en mostrar como se crea la interfaz gráfica y como se muestra una imagen en pantalla. Ahora se muestra como agregar el código para mostrar la transformada de Fourier usando la función fft2 que viene incluida en MATLAB.

Si se sigue el ejemplo anterior solamente tendremos que agregar el siguiente código al callback del botón relacionado al procesamiento de la imagen.

% --- Executes on button press in ProcesarImagen.
function ProcesarImagen_Callback(hObject, eventdata, handles)
% hObject handle to ProcesarImagen (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)


guidata(hObject, handles);

% Carga la imagen de la variable global a una local.
mImage = handles.myImage;

% Calcula la transformada de fourier
mImage2 = fft2(double(mImage));
% Acondiciona la imagen para mostrar las magnitudes centradas
s = fftshift(log(abs(mImage2)));
limites = [(min(s(:))) (max(s(:)))];
set(handles.axes2, 'CLim', limites);
image( s, 'Parent', handles.axes2, 'CDataMapping', 'scaled');
axis(handles.axes2, 'off');
guidata(hObject, handles);

No tengo manera de subir los archivos todavia, y no quiero ponerlos en un servidor externo así que si alguien le interesa alguno de los ejemplos que aqui se ponen, simplemente manden un email y se los mando

7 comentarios:

  1. hola... yo estoy necesitandolo...!! mandamelo por fabor
    aaaa, y buena con esta explicacion ,sobre procesamiento digital de imagenes....
    Saludos...!!

    qaylla@hotmail.com lo voy a estar esperando.

    ResponderEliminar
  2. hola....
    estuve revisando tu informacion y la verdad me interesa el tema, tengo una tarea sobre el procesamiento de las imagenes, y parece ser que con alguno de tus ejemplos puedo solucionarla.
    gracias.

    canchola_pr@hotmail.com

    ResponderEliminar
    Respuestas
    1. hola sabes como hacer un axes parent dentro de un panel no puedo rehalizarlo usando guide

      Eliminar
  3. yo también lo necesito me lo podrían proporcionar mi correo es alejandro@sdsmex.com gracias

    ResponderEliminar
  4. porfa mandamelo te lo agradezco por las molestias
    javier_mejor20@hotmail.com

    ResponderEliminar
  5. hola saludos necesito ayuda nopuedo hacer un axes parent ya que uso un panel pero usando guide... ya que uso zoom y se sale del axes

    [Nombre,Dir]=uigetfile('*.xls','Ingresar Base de Datos');
    if isequal(Nombre,0);
    msgbox('Cancelando','Archivo','help');
    end

    Reg=strcat(Dir,Nombre);
    Datos=importdata(Reg);


    dat=Datos.data
    datos=dat.Hoja1


    ejex= datos(:,7)
    ejey= datos(:,8)
    ejez= datos(:,49) % Costo total de construccion



    [xData, yData, zData] = prepareSurfaceData(ejex, ejey, ejez);

    % Set up fittype and options.
    ft = 'linearinterp';
    opts = fitoptions( ft );

    %axes(handles.axes1)
    % Fit model to data.
    [fitresult, gof] = fit( [xData, yData], zData, ft, opts );
    %axes(handles.axes1)
    % Create a figure for the plots.
    % figure1 = figure;
    % clf
    % axes(handles.axes1)

    h= plot(fitresult, 'Style', 'Contour' );
    %
    % limites = [(min(ejex)) (max(ejex))];
    % set(handles.axes1, 'CLim', limites);
    set( h, 'Parent', handles.axes1);
    %axis(handles.axes1, 'on');
    %
    att. eneas_cerdio@yahoo.com

    ResponderEliminar
  6. weklic@hotmail.com .... enviame xfa.... esta exelente tu proyecto... tmbn tengo a hacer sobre eso pero no se como

    ResponderEliminar

This is I

Blog dedicado a escribir sobre Sistemas Embebidos y el Internet de las Cosas o IoT que le llaman.