我想在matlab中制作一个GUI。在 (*.fig) 文件中,将有 2 个按钮。第一种是从目录中读取图像,将其保存到变量中并在 matlab GUI 中显示。
所以在主文件(*.m)中,我将有 2 个代表 2 个按钮的函数。
例如在主文件 (*.m) 中,第一个函数:x=imread('image.bmp');
第二个按钮(第二个函数,与第一个函数在同一个主文件中)是用第一个按钮读取的图像进行处理。所以,我必须从第一个按钮(函数)中获取变量 x 来完成这个过程。如果我得到了 x 变量,我可以将它发送到另一个 *.M 文件。
如何从第一个函数中获取 x 变量。
这是我的代码..
THE MAIN FILE
%First button (Function)
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)
[filename, pathname] = uigetfile({'*.bmp';'*.jpg';'*.gif';'*.*'},
'Pick an Image File');
citra1 = imread([pathname,filename]);
axes(handles.axes1);
imshow(citra1);
handles.citra1 = citra1;
guidata(hObject, handles);
set(handles.text1,'String',filename);
% 这是我的第二个按钮(功能)
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
[gambr1, psan1, jmlobjk1, brs1, klm1]=BacaCitra1(citra1);
axes(handles.axes3);
imshow(gambr1);
handles.gambr1 = gambr1;
guidata(hObject, handles);
我想从第一个函数中将“citra1”作为图像变量发送到第二个函数中,所以我可以这样做
[gambr1, psan1, jmlobjk1, brs1, klm1]=BacaCitra1(citra1);
但有错误消息,如:评估 uicontrol 回调时出错
??? Undefined function or variable 'citra1'.
Error in ==> deteksi2citra>pushbutton1_Callback at 117
[gambr1, psan1, jmlobjk1, brs1, klm1]=BacaCitra1(citra1);
Error in ==> gui_mainfcn at 96
feval(varargin{:});
Error in ==> deteksi2citra at 42
gui_mainfcn(gui_State, varargin{:});
Error in ==> @(hObject,eventdata)deteksi2citra('pushbutton1_Callback',hObject,even data,guidata(hObject))
??? Error while evaluating uicontrol Callback
谢谢你的帮助:D