2016-04-17 13 views
2

Hier ist mein Code für die Callback-Funktion.Laden eines Bilderstroms in 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; 

Ich habe eine Schaltfläche namens „Next“ auf meinem GUI und ich möchte das nächste Bild in die Achsen laden, wenn es angeklickt wird. handles.imageLeft und handles.imageRight haben den Pfad für die Bilder. Wenn der Knopf zum ersten Mal gedrückt wird, wird die Achse mit den Bildern aktualisiert. Aber nachfolgende Klicks auf die Schaltfläche aktualisieren die Achsen nicht. Aber der Text "Click Next" wird in der Konsole angezeigt, daher weiß ich, dass die Callback-Funktion aufgerufen wird.

+0

Sie müssen zuerst das Bild zum Beispiel mit 'Img = imread (handles.imageRight) 'lesen, und dann können Sie' imshow (Img) 'aufrufen. 'imshow' funktioniert nicht auf einem Pfad, nur auf einer Matrix. – Adiel

+0

Ich habe das auch versucht. Aber selbst das bringt mich an derselben Stelle fest. –

+0

Bitte bearbeiten und zeigen, was genau Sie versucht haben – Adiel

Antwort

2

Vielen Dank @Adiel für die Hilfe. Ich finde das Problem nach Ihren Vorschlägen. Ich aktualisierte die handles.imageLeft und handles.imageRight und ich fügte den Code hinzu guidata(hObject, handles); Ich denke, diese Funktion aktualisiert die Griffe (Dies ist meine erste MATLAB GUI, also bin ich nicht sehr sicher). Jetzt ist das Problem behoben.