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

movie2avi

 

Hinz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2016, 13:39     Titel: movie2avi
  Antworten mit Zitat      
Hallo Leute,

ich möchte eine Figure drehen und dieses dann mittels movie2avi
als Videodatei abspeichern. Mein Problem ist, dass das Video nicht
das Drehen der Figure zeigt, sondern nur meine Matlab "Startseite".

Hier mein Code:

Code:
i = 1;    
while i < 100                      
  view(i,0)
    F(i)=getframe(gcf);
    i=i+1;                                    
end
movie2avi(F, 'Video.avi', 'compression', 'None');


Könnt ihr mir weiterhelfen?

Vielen Dank


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.09.2016, 15:17     Titel:
  Antworten mit Zitat      
Das kann an gcf, liegen, falls falsches ausgewählt war.

Code:

fig = figure()
plot3(1:10, 1:10, 1:10)

i = 1;    
while i < 100                      
  view(i,0)
    F(i)=getframe(fig);
    i=i+1;                                    
end

figure;
movie(F)
 


Zeigt dieses Beispiel bei dir das Plot-Fenster?
Private Nachricht senden Benutzer-Profile anzeigen
 
Hinz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2016, 15:56     Titel:
  Antworten mit Zitat      
Habe es ausprobiert. Also in meinem Code das gcf einfach durch figure(1) ersetzt und irgendwie klappt es trotzdem nicht. Es wird zwar in beiden Fällen die figure aufgerufen und gedreht. Genau so, wie es sein soll. Jedoch klappt es nicht, diese Simulation zum Video zu verarbeiten.
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 13.09.2016, 16:04     Titel:
  Antworten mit Zitat      
Was zeigt denn movie(F) an?

Mach bitte ein lauffähiges Minimal-Bespiel(wo etwas geplottet und gedreht wird), sonst werden so aneinander vorbeireden.

PS: gibt noch deine verwendete Matlab-Version an
Private Nachricht senden Benutzer-Profile anzeigen
 
Hinz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2016, 16:21     Titel:
  Antworten mit Zitat      
Hmmmmm, habe gerade ein Minimalbeispiel programmiert und komischerweise klappt es bei dem Beispiel. Dann muss es wohl irgendwie an meinem Plot liegen... Meeerkwürdig

Also einen Würfel zu rotieren klappt:
Code:
figure(1)
s=10;
x=[0 1 1 0 0 0;1 1 0 0 1 1;1 1 0 0 1 1;0 1 1 0 0 0]*s;
y=[0 0 1 1 0 0;0 1 1 0 0 0;0 1 1 0 1 1;0 0 1 1 1 1]*s;
z=[0 0 0 0 0 1;0 0 0 0 0 1;1 1 1 1 0 1;1 1 1 1 0 1]*s;
for i=1:6
    h=patch(x(:,i),y(:,i),z(:,i),'k');
    set(h,'edgecolor','w')
end

axis([-10 20 -10 20 -10 20]);
axis 'off';
i = 1;    
while i < 500                      
  view(i,30)
    F(i)=getframe(figure(1));
    i=i+1;                                    
end
movie2avi(F, 'Video.avi', 'compression', 'None');
 
Hinz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.09.2016, 16:22     Titel:
  Antworten mit Zitat      
Kann es sein, dass mein Plot zu komplex ist? Oder woran könnte das liegen? Arbeite mit der Version 2011
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 14.09.2016, 10:48     Titel:
  Antworten mit Zitat      
Es kann sein, dass die Schleife einfach viel zu schnell ist, um die Graphik zu aktualisieren. Deshalb probiere mal eine Pause einzubauen von 1 Sekunde oder mehr
Also der Befehl für wäre, PAUSE. man kann auch DRAWNOW sich anschauen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Hinz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2016, 11:47     Titel:
  Antworten mit Zitat      
Der pause befehl ändert den getframe befehl nicht, daher passiert in dem video dann genau dasselbe. Ich sehe meinen Plot als Standbild und nicht als Simulation : )
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.09.2016, 12:21     Titel:
  Antworten mit Zitat      
Hallo,

ich fürchte, ohne ein (Minimal-) Beispiel, in dem das Problem auftritt, werden wir nicht weiterkommen.

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

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.09.2016, 12:49     Titel:
  Antworten mit Zitat      
Okay, also hier wäre eine Beispielfigure, bei der es mit dem bisherigen Code nicht klappt.

Beispiel_fig.fig
 Beschreibung:

Download
 Dateiname:  Beispiel_fig.fig
 Dateigröße:  111.78 KB
 Heruntergeladen:  350 mal
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.09.2016, 14:12     Titel:
  Antworten mit Zitat      
Hallo,

mit R2016a und dieser Figure geht es.
Ich werde es später an einem anderen Rechner noch mit R2012b testen.

Um dem Problem auf die Spur zu kommen, bräuchte man allerdings wohl neben der Figure auch den Code, mit dem sie erstellt wurde.

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

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 14.09.2016, 14:20     Titel:
  Antworten mit Zitat      
Hallo

habe mit deinem Fenster ausprobiert, bei mir lief es ohne Probleme
ich habe es so gemacht:
Code:

fig = openfig('C:\Downloads\Beispiel_fig.fig')
i = 1;    
while i < 100                      
  view(i,0); drawnow()
    F(i)=getframe(fig);
    i=i+1;                                    
end

figure;
movie(F)


 


EDIT:
Den code habe jetzt in Matlab 2016 laufen lassen und 2012b.
In 2016 läuft es ohne Probleme, in 2012b bewegt sich in movie das Bild nicht

Zuletzt bearbeitet von denny am 14.09.2016, 14:33, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 14.09.2016, 14:32     Titel:
  Antworten mit Zitat      
Hallo

Das ist ein Bug in Matlab, dass in 2014b behoben wurde, siehe hier ein Workaround: http://www.mathworks.com/support/bugreports/384622

https://de.mathworks.com/matlabcent.....rs/33111-getframe-problem
Private Nachricht senden Benutzer-Profile anzeigen
 
Hinz

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.09.2016, 10:30     Titel:
  Antworten mit Zitat      
ahhh okay, vielen tausend Dank für eure Mühe. Ist ja witzig, dass es ein Bug ist, darauf wäre ich nicht gekommen.. Hammer.

Beste Grüße
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.09.2016, 11:51     Titel:
  Antworten mit Zitat      
Hallo,

konntest du das Problem lösen, indem du den Renderer angepasst hast?

Früher war das der erste Schritt, wenn irgendwas mit Graphik nicht gepasst hat: anderen Renderer versuchen. Bei mir war es nur zu lange her, dass ich mit einem älteren Release in solche Probleme gelaufen bin.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.