Matlab - Capturar Imagen de axes en Guide

 
Vista:

Capturar Imagen de axes en Guide

Publicado por Virginia (3 intervenciones) el 08/03/2013 18:45:36
Hola a todos, estoy haciendo un proyecto para representación de señales cerebrales en tiempo real y tengo un problema con Guide de Matlab.

Yo represento el canal en un axes en una guide a la que le he puesto un Push button con el que quiero capturar la imagen que hay en ese momento en el axes.

Este es el codigo del programa:

function Capturar_Callback(hObject, eventdata, handles)
% hObject handle to Capturar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

canal = getimage(handles.axes1);

% Guardar archivo
formatos = {'*.jpg','JPEG (*.jpg)';'*.tif','TIFF (*.tif)'};
[nomb,ruta] = uiputfile(formatos,'GUARDAR IMAGEN');

if nomb==0
return
end

fName = fullfile(ruta,nomb);
imwrite(canal,fName);

Si hago esto, no me almacena ninguna imagen y me dice que el axes esta vacío. (Image data can not be empty.)

La imagen la represento cuando se llama a esta guide con otro subprograma de esta manera :

function dibujarPlot (data,selec,handles)

plot(handles.axes1,data(:,selec-2));

end

Espero que puedan ayudarme, no se si me he explicado bien, no duden en preguntarme lo que sea.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Capturar Imagen de axes en Guide

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 08/03/2013 23:18:07
Hacer desde cero un código para tu pregunta implica tiempo, mejor envíame tu guide a mi correo tanto fig y m para revisarlo.

Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Capturar Imagen de axes en Guide

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 16/03/2013 16:11:21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
function varargout = DibujarCanales(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @DibujarCanales_OpeningFcn, ...
                   'gui_OutputFcn',  @DibujarCanales_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
function DibujarCanales_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
set(gcf,'Color',[1 rand rand]);
set(handles.AF3,'value',0);
set(handles.F7,'value',0);
set(handles.F3,'value',0);
set(handles.FC5,'value',0);
set(handles.T7,'value',0);
set(handles.P7,'value',0);
set(handles.O1,'value',0);
set(handles.O2,'value',0);
set(handles.P8,'value',0);
set(handles.T8,'value',0);
set(handles.FC6,'value',0);
set(handles.F4,'value',0);
set(handles.F8,'value',0);
set(handles.AF4,'value',0);
 
guidata(hObject, handles);
 
function varargout = DibujarCanales_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
 
function uipanel1_SelectionChangeFcn(hObject, eventdata, handles)
global data canal salir
canal=1;
salir=0;
data=rand(100,14);
color=rand(14,3);
if hObject==handles.AF3
   canal=get(hObject,'value');
   if  canal==1
      plot(handles.axes1,data(:,1),'color',color(1,:),'linewidth',2);
      pause(0.1);
      canal=get(hObject,'value');
   end
elseif hObject==handles.F7
   canal=get(hObject,'value');
   if canal==1
       plot(handles.axes1,data(:,2),'color',color(2,:),'linewidth',2);
       canal=get(hObject,'value');
       pause(0.1);
   end
%               
    elseif hObject==handles.F3
    canal=get(hObject,'value');
    if canal==1
        plot(handles.axes1,data(:,3),'color',color(3,:),'linewidth',2);
        canal=get(hObject,'value');
        pause(0.1);
    end
 
elseif hObject==handles.FC5
    canal=get(hObject,'value');
    if canal==1
        plot(handles.axes1,data(:,4),'color',color(4,:),'linewidth',2);
        pause(0.1);
        canal=get(hObject,'value');
    end
elseif hObject==handles.T7
    canal=get(hObject,'value');
    if canal==1
        plot(handles.axes1,data(:,5),'color',color(5,:),'linewidth',2);
        pause(0.1);
        canal=get(hObject,'value');
    end
elseif hObject==handles.P7
    canal=get(hObject,'value');
     if canal==1
         plot(handles.axes1,data(:,6),'color',color(6,:),'linewidth',2);
         pause(0.1);
         canal=get(hObject,'value');
     end
 elseif hObject==handles.O1
     canal=get(hObject,'value');
     if canal==1
        plot(handles.axes1,data(:,7),'color',color(7,:),'linewidth',2);
        pause(0.1);
        canal=get(hObject,'value');
     end
elseif hObject==handles.O2
    canal=get(hObject,'value');
    if canal==1
        plot(handles.axes1,data(:,8),'color',color(8,:),'linewidth',2);
        pause(0.1);
        canal=get(hObject,'value');
    end
elseif hObject==handles.P8
     canal=get(hObject,'value');
     if canal==1
          plot(handles.axes1,data(:,9),'color',color(9,:),'linewidth',2);
          pause(0.1);
          canal=get(hObject,'value');
     end
elseif hObject==handles.T8
    canal=get(hObject,'value');
    if canal==1
        plot(handles.axes1,data(:,10),'color',color(10,:),'linewidth',2);
        pause(0.1);
        canal=get(hObject,'value');
    end
elseif hObject==handles.FC6
    canal=get(hObject,'value');
    if canal==1
        plot(handles.axes1,data(:,11),'color',color(11,:),'linewidth',2);
        pause(0.1);
        canal=get(hObject,'value');
   end
elseif  (hObject==handles.F4)
    canal=get(hObject,'value');
    if canal==1
        plot(handles.axes1,data(:,12),'color',color(12,:),'linewidth',2);
        pause(0.1);
        canal=get(hObject,'value');
   end
 elseif hObject==handles.F8
     canal=get(hObject,'value');
     if canal==1
        plot(handles.axes1,data(:,13),'color',color(13,:),'linewidth',2);
        pause(0.1);
        canal=get(hObject,'value');
     end
  else
       canal=get(hObject,'value');
        if canal==1
        plot(handles.axes1,data(:,14),'color',color(14,:),'linewidth',2);
        pause(0.1);
        canal=get(hObject,'value');
        end
end
guidata(hObject,handles);
 
function Capturar_Callback(hObject, eventdata, handles)
F=getframe(gca,[-25 -30 717 150 ]);
formatos = {'*.jpg','JPEG (*.jpg)';'*.tif','TIFF (*.tif)'};
[nomb,ruta] = uiputfile(formatos,'GUARDAR IMAGEN');
if nomb==0
    return
else
    fName = fullfile(ruta,nomb);
    imwrite(F.cdata,fName);
end
 
 
function Cancelar_Callback(hObject, eventdata, handles)
close DibujarCanales



Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Capturar Imagen de axes en Guide

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 17/03/2013 23:34:29
Hola Virginia.
Me enviastes tu código a mi correo y te devuelto tu código ya filtrado a tu correo además estoy poniendo aquí en el foro. Como prueba que devuelvo los códigos que me envían a mi correo.


Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miriam

Capturar Imagen de axes en Guide

Publicado por Miriam (1 intervención) el 30/04/2014 02:50:26
hola disculpe tengo problemas al guardar mis resultados (gráficas).. el error que me arroja es el siguiente

Error using imwrite (line 421)
Expected DATA to be nonempty.

Error in cog_4>guardar_Callback (line 2096)
imwrite(F,fName);

AYUDa POR FAVOR ... SABEN PORQUE ME SALE ESO ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Capturar Imagen de axes en Guide

Publicado por george (2 intervenciones) el 11/08/2018 00:58:35
hola... y como aumentas la resolución de la captura... o como se podría guardar con alta resolución
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar