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

mehrer Subplots in Schleife, Geschwindigkeitsproblem

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.03.2010, 23:47     Titel: mehrer Subplots in Schleife, Geschwindigkeitsproblem
  Antworten mit Zitat      
Hallo,

Ich haette folgendes Anliegen bzw. Problem.

Ich nehme mehrere Frames (in einer Schleife) ueber meine Webcam auf und fuehre damit verschiedene Berechnungen aus. Die Ergebnisse stelle ich dann online in verschiedenen subplots dar. Mein Problem ist dabei, dass ich innerhalb der Schleife jedes mal die Subplots und die Achsenbeschriftungen neu erstelle und deswegen alles recht langsam ablaeuft, so dass keine online Auswertung moeglich ist.

Gibt es eine Moeglichkeit eine Art Standard-subplot-fenster zu erstellen (subplot+beschriftungen...) und dann nur noch den Inhalt des Plots bei jedem Schleifendurchgang zu aendern. Denn wenn ich das Programm ohne die Achsenbeschriftungen laufen lasse ist die Geschw. ausreichend um die einzelnen Grafen online zu zeichnen.

Vielleicht hatt ja jemand nen Tipp. Im Vorraus schon einmal vielen DANK.

Und Sorry fuer die umstaendliche Darstellung der Sonderzeichen, bin in UK.

Hier zum besseren Verstaendniss ein Ausszug aus meinen Programm:

Code:

% Create video input object.
vid = videoinput('winvideo')

% Set video input object properties for this application.
% Note that example uses both SET method and dot notation method.
set(vid,'TriggerRepeat',Inf);

% Set value of a video source object property.
vid_src = getselectedsource(vid);

% Start acquiring frames.
start(vid)

for i=1:10000

   f=getdata(vid,2);
   .
   .
   .
   subplot(1,2,1)
   plot (x,y);
   xlabel('last 50 frames');
   ylabel(areal);

   subplot(1,2,2);
   image(overlay); %aktueller Frame als RGB Bild
   axis image;
   xlabel('elas')

   -->an dieser Stelle folgen dann noch mehr subplots

end

stop(vid)


 
[/code]


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.03.2010, 10:37     Titel:
  Antworten mit Zitat      
Hallo,

probier mal etwas in der Art. Schneller gehts nicht:

Code:
t = linspace(0, 2*pi);
p = plot(0,0);
xlabel('x')
ylabel('y')
for I = 1:10000
    set(p, 'XData', sin(I*t))
    set(p, 'YData', cos(I*t))
    drawnow
end


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2010, 19:50     Titel:
  Antworten mit Zitat      
Erstmal danke für deine Antwort.

An sowas in der Art hatte ich auch gedacht, aber hierbei treten 2 Probleme auf:

1.: ich möchte in einem der subpots den aktuellen Frame als Bild darstellen (zuvor als grauwert-Bild umgewandelt) und weiß nicht was ich da für XData und YData angeben soll.

2.: wie ich, wenn ich die subplots und die Beschriftugen vor der Schleife deklariere, dann innerhalb der schleife die berechneten Werte (und den aktuellen Frame als Bild) den einzelnen subplots zuweisen kann. Sprich welches handle brauch ich um zwischen den subplots zu wechsel und die Werte zuzuweisen.

Jemand ne Idee?
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.03.2010, 23:02     Titel:
  Antworten mit Zitat      
Hallo,

zu 1.: das Bild steckt dann in der Eigenschaft 'ZData'

zu 2.: die Subplots und "Default-Plots" (bei mir mit den Nullen) vorab erzeugen, und sich die Handles zurückgeben lassen. Dann brauchst du nur noch mit den Handles auf den Plot bzw. das Bild zu arbeiten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.03.2010, 23:53     Titel:
  Antworten mit Zitat      
Danke. Hab es soweit. Ist zwar immer noch ein tick langsam, aber damit werde ich wohl leben müssen. Das Problem ist das ich innerhalb der for Schleife 3 Frames einlese und mit denen dann arbeite. Glaube das ist einfach zu viel und senkt die Geshwindigkeit stark.

Die frames hole ich mir getdata, gibt es da noch eine schnellere Möglichkeit?
 
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 - 2025 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.