0

次のエラーが表示されます。

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

で使用しようとするとFileNamepushbutton2_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 行目は、ハンドル構造の値を変更するコールバックの最後に配置する必要があるボイラープレート コードです。

これで、すべてのコールバックがファイル名にアクセスできるようになります。あなたの特定のケースでは、コールバック 2 で、次のようになります。

img = imread(handles.filename);

もちろん、後でこのイメージを別の関数で使用したい場合があるため、ハンドルにも格納できます。

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