2016-04-17 7 views
2

ここに私のコールバック関数のコードがあります。Matlab GUIで画像のストリームを読み込む

function Next_Callback(hObject, eventdata, handles) 

display('Click Next'); 
handles.imgLNum = strcat('I1_',num2str(handles.imageNumber),'.png'); 
handles.imgRNum = strcat('I2_',num2str(handles.imageNumber),'.png'); 

handles.imageLeft = strcat(handles.directory,handles.imgLNum); 
handles.imageRight = strcat(handles.directory,handles.imgRNum); 

axes(handles.img1); 
imshow(handles.imageLeft); 
axes(handles.img2); 
imshow(handles.imageRight); 
handles.imageNumber = handles.imageNumber+1; 

GUIに「次へ」というボタンがあり、クリックしたときに次の画像を軸にロードしたいと考えています。 handles.imageLefthandles.imageRightには画像のパスがあります。最初にボタンを押すと、軸は画像で更新されます。しかし、その後のボタンのクリックは軸を更新しません。しかし、[次へ]をクリックするとコンソールに表示されるので、コールバック関数が呼び出されています。

+0

たとえば、 'Img = imread(handles.imageRight)'でイメージを読み込み、 'imshow(Img)'を呼び出すことができます。 'imshow'はパス上では動作せず、マトリックス上でのみ動作します。 – Adiel

+0

私もそれを試しました。しかし、それでも私は同じ場所にこだわってしまいます。 –

+0

正確に何を試してみましたか編集して表示してください – Adiel

答えて

2

ありがとうございました。私はあなたの提案に続く問題を見つける。 handles.imageLefthandles.imageRightを更新しました。コードguidata(hObject, handles);を追加しました。この関数はハンドルを更新すると思います(これは私の最初のMATLAB GUIなので、あまりよく分かりません)。今問題は修正されました。