WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Bild über mehrer Callbacks verwenden

 

Fank1
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 30.09.15
Wohnort: Schweiz
Version: R2015
     Beitrag Verfasst am: 08.12.2015, 14:46     Titel: Bild über mehrer Callbacks verwenden
  Antworten mit Zitat      
Hallo Zusammen

Ich habe ein Problem beim erstellen meines GUI's. Im moment habe ich ein Preview meiner Cam und kann dann über einen Button einen Snapshot in einem neuen axes darstellen. Nun möchte ich mit diesem Snapshot weiterarbeiten, indem ich weitere Buttons verwende.

Ich schaffe es aber nicht dieses Bild nun in anderen Callbacks aufrufen zu können, ohne dass ich den ganzen Code vom erstellen des Snapshots und der Cam in dieses Callback kopiere.

Das selbe problem besteht auch wenn ich ein Bild einlese. Muss ich dieses jedes Mal neu einlesen? Wenn ich normal in einem m-file programmiere kann ich dieses ja auch über eine Variable abspeichern. Wieso funktioniert dies in dem GUI nicht?

Gruss Fank1
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.12.2015, 14:57     Titel:
  Antworten mit Zitat      
was hast du denn versucht? hilft dir der entsprechende bereich in der dokumentation nicht weiter?
http://de.mathworks.com/help/matlab.....data-among-callbacks.html
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Fank1
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 30.09.15
Wohnort: Schweiz
Version: R2015
     Beitrag Verfasst am: 08.12.2015, 15:07     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
was hast du denn versucht? hilft dir der entsprechende bereich in der dokumentation nicht weiter?
http://de.mathworks.com/help/matlab.....data-among-callbacks.html


Danke für den link!

Also hier lese ich mein Bild ein:

Code:

function capturebutton_Callback(hObject, eventdata, handles)
global S CAM ;
if(CAM==1)
    S=getsnapshot(handles.VidObj);
    S=imresize(S,[300 NaN]);
     set(handles.SNAP,'Visible','on')
     imshow(S,'parent',handles.SNAP);
else
   msgbox('Start Cam First')
end


Nun möchte ich das Bild S weiterverwenden. Filtern, Template matching etc.
Ich habe es mit guidata(hObject) versucht, weiss aber nicht genau wie ich die Funktion anwenden muss.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 08.12.2015, 15:08     Titel: Re: Bild über mehrer Callbacks verwenden
  Antworten mit Zitat      
Hallo Fank1,

Zitat:
Wenn ich normal in einem m-file programmiere kann ich dieses ja auch über eine Variable abspeichern. Wieso funktioniert dies in dem GUI nicht?

Heißt "M-File" hier "Funktion" oder "Script"? Das ist ein Unterschied, denn Funktionen speichern die lokalen Variablen in ihrem eigenen "Workspace", Scripts are im Workspace des aufrufenden Programms, also z.B. dem Commandwindow.

Suche in der Dokumentation nach "script" und "function", um mehr über die Unterschiede zu lernen.

Um Daten zwischen Callbacks auszutauschen, schreibt man sie entweder in die UserData oder ApplicationData der Figure. Siehe guidata . Eine Suche im Forum lohnt sich auch, da auch viele andere Probleme damit haben.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Fank1
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 30.09.15
Wohnort: Schweiz
Version: R2015
     Beitrag Verfasst am: 08.12.2015, 15:40     Titel:
  Antworten mit Zitat      
Danke schonmal für die schnellen Antworten! Bin schon weitergekommen.

Code:
% --- Executes on button press in capturebutton.
function capturebutton_Callback(hObject, eventdata, handles)
global CAM
if(CAM==1)
    Image= getsnapshot(handles.VidObj);
   
    handles.Image=Image;
    handles.Image=imresize(handles.Image,[400 NaN]);
    set(handles.SNAP,'Visible','on')
    imshow(handles.Image,'parent',handles.SNAP);
else
   msgbox('Start Cam First')
end
guidata(hObject, handles);


Der Code funktioniert so und ich kann das Bild nun hier verwenden:

Code:
% --- Executes on button press in matchbutton.
function matchbutton_Callback(hObject, eventdata, handles)
% hObject    handle to matchbutton (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global A
A=Filter(handles.Image);



Ist das Korrekt so? oder kann man das einfacher machen?
Private Nachricht senden Benutzer-Profile anzeigen
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 08.12.2015, 16:33     Titel:
  Antworten mit Zitat      
hast du den tipp mit den globalen variablen aus meinem link? globale variablen sind nämlich nicht sehr schön.
_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Fank1
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 30.09.15
Wohnort: Schweiz
Version: R2015
     Beitrag Verfasst am: 08.12.2015, 17:04     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
hast du den tipp mit den globalen variablen aus meinem link? globale variablen sind nämlich nicht sehr schön.


Nein den habe ich im Internet gefunden Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.