2016-10-05 5 views
1

Wenn ich meinen Code ausführen, gibt es zwei Zahlen, eine ist Namen als "Abbildung 1", ein anderer "Test". Was ich versuche zu tun ist, lassen Sie die IMshow zeigt auf dem "Test" nicht "Abbildung 1".Wie Übergeben von Handles von einer Funktion zu einer anderen

himg=GUI('name','test','NumberTitle','off'); %where GUI was designed using GUIDE 
handles = guihandles(himg); 
while ishandle(himg) 
    if sum(depthMetaData.IsSkeletonTracked)>0 
     util_skeletonViewer(skeletonJoints,image,1,handles); %refer code below 
    else 
     imshow(image,'Parent',handles.axes1); 
    end 
end 

function [] = util_skeletonViewer(skeleton, image, nSkeleton,handles) 
imshow(image,'Parent',handles.axes1); 

und ich werde diesen Fehler nach der Schleife

Fehler Verlassen imshow mit> validateParent (Linie 352) HAX muss eine gültige Achsen handhaben sein. Fehler in imshow (Zeile 257) validateParent (specific_args.Parent) Fehler in Main (Zeile 297) imshow (Bild, 'Parent', handles.axes1);

* ps: ich weiß nicht wirklich, warum '1' obwohl existieren.

+0

Gibt es eine Achse in Ihrem GUIDE-GUI? –

+0

ja es gibt, es ist axes1 –

+0

Erschaffst du 'axes1' vor' handles = guihandles (himg); '? – erfan

Antwort

1

Bei der Überprüfung Ihres Problems bin ich mir nicht sicher, ob "guihandles" den Achsengriff abdeckt; in einem Beispiel, um Ihr Problem neu zu erstellen, tat es nicht. Ist die Achse sogar noch vorhanden, wenn Sie die Griffe speichern?

Bitte versuchen Sie, ob der folgende angepasste Code funktioniert.

himg=GUI('name','test','NumberTitle','off'); %where GUI was designed using GUIDE 
handles = guihandles(himg); 
handles.axis1 = []; 
while ishandle(himg) 
    if sum(depthMetaData.IsSkeletonTracked)>0 
     util_skeletonViewer(skeletonJoints,image,1,handles); %refer code below 
    else 
     if ~isempty(handles.axes1) 
      imshow(image,'Parent',handles.axes1); 
     else 
      figure(himg) 
      imshow(image,'Parent',gca); 
      handles.axes1 = gca; 
     end 
    end 
end 

function [] = util_skeletonViewer(skeleton, image, nSkeleton,handles) 
    if ~isempty(handles.axes1) 
     imshow(image,'Parent',handles.axes1); 
    else 
     figure(himg) 
     imshow(image,'Parent',gca); 
     handles.axes1 = gca; 
    end 
+0

'guihandles' gibt definitiv den Griff der Achsen zurück, wenn es existiert. – erfan

+0

es funktioniert! ich danke dir sehr! aber nach dem Schließen der GUI bekomme ich einen Fehler: > Fehler bei der Verwendung von imshow> validateParent (Zeile 352) HAX muss ein gültiger Achsen-Handle sein. Fehler in imshow (Zeile 257) validateParent (specific_args.Parent) Fehler in Main (Zeile 342) imshow (Bild, 'Parent', handles.axes1); –

+0

Ich habe noch eine Frage, wenn erlaubt, innerhalb der Funktion util_skeletonViewer, ich habe "Linie" verwendet, um Skelett zu zeichnen, aber es zeichnete weiter auf "Abbildung 1", irgendeine Idee, wie es an GUI übergeben? Ich weiß nicht, wie ich 'Abbildung 1' loswerden kann, es erscheint, sobald ich meinen Code ausgeführt habe! 'line (X1, Y1, 'Linienbreite', 1.5, 'Linienstil', '-', 'Markierung', '+', 'Farbe', 'r');' –

Verwandte Themen