次のエラーが表示されます。
Error in ==> APP>pushbutton2_Callback at 109
img=imread(FileName)
で使用しようとするとFileName
、pushbutton2_Callback
前述のエラーが表示されます
FileName
で変数ですpushbutton1_Callback
。
次のエラーが表示されます。
Error in ==> APP>pushbutton2_Callback at 109
img=imread(FileName)
で使用しようとするとFileName
、pushbutton2_Callback
前述のエラーが表示されます
FileName
で変数ですpushbutton1_Callback
。
FileName
あるコールバックから別のコールバックに変数を渡す必要があります。これを行うには、変数を の'UserData'
フィールドに割り当てますpushbutton1
。下のコードpushbutton1_Callback
は次のようになります。
FileName=uigetfile();
set(handles.pushbutton1,'UserData',FileName);
次に、以下の変数を読み込む必要がありますpushbutton2_Callback
。
FileName=get(handles.pushbutton1,'UserData');
img=imread(FileName);
結果を確認したい場合は、行末のセミコロンをいつでも残すことができます。
コールバック間で使用するために GUI でデータを保存する一般的な方法があります。ハンドル オブジェクトに任意のフィールドを追加できるので、pushbutton1 コールバックに入れることができます
handles.filename = FileName;
guidata(hObject,handles);
2 行目は、ハンドル構造の値を変更するコールバックの最後に配置する必要があるボイラープレート コードです。
これで、すべてのコールバックがファイル名にアクセスできるようになります。あなたの特定のケースでは、コールバック 2 で、次のようになります。
img = imread(handles.filename);
もちろん、後でこのイメージを別の関数で使用したい場合があるため、ハンドルにも格納できます。
handles.img = img;
guidata(hObject, handles);