Verfasst am: 09.11.2010, 12:39
Titel: 2 Bilder aus timer function in GUI anzeigen
Hallo allerseits,
ich möchte ein Bild, was ich mit einer Webcam aufnehme und auch live anzeige, per snapshot bearbeiten, dieses dann bearbeiten und danach dann das editierte bild mit dem originalen bild überlagern, sodass man die detetierten konturen kontrollieren kann.
Dazu führe ich mit meiner pushbutton_callback function eine timer function aus, die da lautet:
Code:
t = timer('ExecutionMode', 'fixedRate','TimerFcn',{@imageAquisition,handles},'Period',handles.Period,'StartDelay',handles.StartDelay,'TasksToExecute',handles.TasksToExecute,'StopFcn',{@stopTimer,handles},'ErrorFcn',{@ErrorFcn,handles});
start(t);
Mit Hilfe dieser timer function führe ich in regelmässigen Abständen den unten aufgeführten Code aus.
Nun habe ich aber das Problem, das die beiden gewünschten Bilder () nicht in der auf der GUI plazierten axes1 dargestellt werden, sondern sich stattdessen eine neue figure öffnet. Kann mir jmd vielleicht weiterhelfen. Danke!!
filename = [B,'_',C,'_',D,'_','Permeabilitaets_Berechnung','_',Comment,'_',TestDuration,'.jpg'];
imwrite(im(:,:,:,Duration),filename); %stores image in work folder
set(handles.editProcessStep,'string','Storing Image');
%% image processing
% starting with:background subtraction % To create a more uniform background, subtract the background image, % background, from the original image, im(:,:,:,Duration), this is prodeded % due to enhancement of the wanted edge
Verfasst am: 09.11.2010, 12:54
Titel: Re: 2 Bilder aus timer function in GUI anzeigen
Hallo totti32,
Ich kann in Deinem Code keine Stelle finden, in der Matlab versucht etwas in ein AXES-Object "axes1" zu plotten. Der Ausdruck "axes1" taucht gar nicht auf! Statt dessen wird per:
Dies erstellt Dir ein neues AXES Objekt. Wenn nun z.B. die Handle-Visibility der GUI-Figure auf "Callback" oder "off" steht, wird dieses AXES-Objekt in einer neuen Figure erstellt.
Ich vermute aber, im "handles"-Struct befindet sich auf der Handle des GUI-Figure-Objekts. Den kannst Du dann als Parent des AXES-Objekts angeben:
Wie das entsprechende Feld im "handles"-Struct heißt, weiß ich nicht.
Die obige Zeile ist übrigens effizienter als per FINDOBJ nach dem Handle suchen zu lassen. Vorallem vermeidet es den Fehler, der auftritt wenn irgendein anderes Objekt mit dem Tag "axes2" existiert, z.B. in einer zweiten Intanz des GUIs.
wobei "gui_permeability" der Tag meiner GUI ist in der sich auch "axes2" befindet, wird das Bild direkt in die GUI - also in einem Rahmen in gui_permeability - dargestellt. Kann es vielleicht sein, dass dadurch das ich das ganze mit guide geschrieben habe, irgendwelche Auswirkungen nun auftreten.
... wobei "gui_permeability" der Tag meiner GUI ist in der sich auch "axes2" befindet, wird das Bild direkt in die GUI - also in einem Rahmen in gui_permeability - dargestellt.
Was bedeutet "in der sich auch 'axes2' befindet"? Du erstellst da Objekt mit dem Tag "axes2" doch erst hier!
Wie unterscheidet sich nun das Ergebnis von dem, was Du erreichen möchtest?
ich habe die GUI mit guide erstellt und doch somit auch mit dessen Hilfe das Objekt mit dem Tag "axes2" schon bereits auf der GUI platziert. Mit der Codezeile:
sage ich doch dann, dass dies die axes ist, die als nächstes zum plotten bzw. zum Anzeigen meiner gewünschten Daten verwendet werden soll. Daher verstehe ich nicht, warum nun die Darstellung nicht in diesem axes erfolgt.
Um das ganze zu verdeutlichen hänge ich mal 2 screenshots von meiner GUI, in der man auch meine angesprochene "axes2" sieht; und zum anderen ein Bild vom momentanen Zusatand. Zusehen ist dabei in dem Bild "momentaner Zustand bei Ausführung der pushbutton_callback", dass das graue Bild (ist nur ein Testbild) nicht wie gewünscht in der axes mit dem Tag "axes2" dargestellt wird.
Hoffe mein Problem wird dadurch klarer.
momentaner Zustand bei Ausführung der pushbutton_callback.jpg
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
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.