0

我收到此错误:

Error in ==> APP>pushbutton2_Callback at 109
img=imread(FileName)

当我尝试使用FileName时,pushbutton2_Callback我收到了提到的错误

FileName是可变的pushbutton1_Callback

4

2 回答 2

4

您需要将变量FileName从一个回调传递给另一个。为此,您可以将变量分配给 的'UserData'字段pushbutton1。您的代码pushbutton1_Callback应如下所示:

FileName=uigetfile();
set(handles.pushbutton1,'UserData',FileName);

接下来,您需要读入以下变量pushbutton2_Callback

FileName=get(handles.pushbutton1,'UserData');
img=imread(FileName);

如果你想检查你的结果,你总是可以把分号放在行尾。

于 2010-05-27T22:23:34.553 回答
1

有一种通用方法可以使用您的 gui 存储数据以在回调之间使用。您可以向句柄对象添加任意字段,因此您可以放入您的 pushbutton1 回调

handles.filename = FileName;
guidata(hObject,handles); 

第二行是样板代码,您需要将其放在更改句柄结构中值的任何回调的末尾。

现在您的所有回调都可以访问文件名。在您的特定情况下,在回调 2 中,您将拥有

img = imread(handles.filename);

当然,您可能希望稍后在另一个函数中使用此图像,因此您也可以将其存储在句柄中

handles.img = img;
guidata(hObject, handles);
于 2010-05-28T12:41:08.317 回答