• Lunes 23 de Diciembre de 2024, 07:56

Autor Tema:  empezando con matlab...abrir una imagen  (Leído 8573 veces)

manu_bet

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
empezando con matlab...abrir una imagen
« en: Sábado 11 de Abril de 2009, 18:24 »
0
hola, pues eso, necesito trabajar con matlab y estoy empezando e a meterle mano a ver si me voy familiarizando y no se me hace una tarea muy tediosa.

he contruido la interfaz grafica que neceecito, o al menos por el momento, con GUIDE, bastante facil e intuitivo aparentemente. Ahora lo que necesito es mostrar una imagen que tengo abierta.el proceso de abroir imagen creo que se realiza bien, de hecho me aparece la imagen en el workspace de matlab y desde ahi puedo visualizarla, pero no consigo, ni encuentro informacion o algun ejemplo, que la imagen se muestre automaticamente en alguno de los "ejes" que he creado. haciendo plot desde alguna de las variables del worspace si se me muestra la imagen en el "eje" de mi GUI

alguien me orienta?

gracias :)

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: empezando con matlab...abrir una imagen
« Respuesta #1 en: Martes 14 de Abril de 2009, 06:46 »
0
Carga la imagen, activa el eje en el que la mostrarás, y utiliza la función image para hacerlo.

imagen = imread( 'imagen.bmp' );
axes( handles.axes1 );
image( imagen );

El eje lo indiqué como handles.axes1 porque handles es una variable que "contiene" referencias a todos los elementos en la GUI, ya que en las funciones de cada elemento no puedes acceder directamente a los demás, lo tienes que hacer a través de esta variable que se pasa como parámetro a todas las funciones callback.

En dónde coloques el código, depende de en qué momento querrás que se muestre la imagen.

Suerte :).
La imaginación es el límite.
Hardware & Software | Mexchip

manu_bet

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: empezando con matlab...abrir una imagen
« Respuesta #2 en: Miércoles 15 de Abril de 2009, 22:51 »
0
gracias!

bueno habia conseguido lo que comentaba, pero no exactamente como dices, trasteando entre varios odigos que he encontrado por ahi consegui construir esto, que funciona

Código: Matlab M
  1.  
  2.  
  3. [file,rep]=uigetfile('*.tif');
  4. if ~isequal(file, 0)
  5.    
  6.     imagen=imread(file);
  7.     handles.file=file;
  8.     guidata(hObject,handles);
  9.    
  10.    
  11. end
  12.  
  13. axes( handles.axes1 );
  14. imshow(imagen);
  15. handles.imagen=imagen;
  16. guidata(hObject,handles);
  17.  
  18.  
  19.  
  20.  

que diferencia hay? principalmente me refiero a la funcion "image" que me comentas y la funcion "imshow" que he usado yo.

en fin, espero ir avanzando poco a poco, gracias!

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: empezando con matlab...abrir una imagen
« Respuesta #3 en: Jueves 16 de Abril de 2009, 07:20 »
0
En este caso logran el mismo objetivo ambas funciones, aunque la forma en que trabajan es diferente, eso puedes verlo en la ayuda.

El código que tienes es precisamente como se hace, se activan los "ejes", se muestra la imagen, en este caso se agrega un elemento a la estructura "handles" que permite que todas las funciones pudieran acceder a la imagen.
La imaginación es el límite.
Hardware & Software | Mexchip