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

Frames eines Movies manuell in einer Funktion verändern

 

trust114
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2016, 20:39     Titel: Frames eines Movies manuell in einer Funktion verändern
  Antworten mit Zitat      
Hallo Leute,

habe eine Movie mit dem Namen 'Film.avi'.

Nun will ich gerne über eine Funktion mit zwei Variablen 1. die movie aufrufen und 2. die Frames veränderbar gestalten. Hier mein jetziger code:

Code:
function [] = moviecontrol(varargin)

if nargin == 1
       MovieName == varargin{1}
       handle=implay('Film.avi')

elseif nargin == 2
       MovieName == varargin{1};
       Frames = varargin{2};

       handle=implay('Film.avi');
       set(handle,'fps', Frames)
end
 


Nur leider scheint da noch ne Kleinigkeit zu fehlen. Hoffe einer von euch kann mir einen Tipp geben.
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 28.01.2016, 21:04     Titel:
  Antworten mit Zitat      
Hallo,

ich würde mir mal die Doku zu dem Befehl VideoReader

Code:
obj = VideoReader(filename) constructs obj to read video data from the file named filename.


Die Funktion implay liefert nämlich keinen Rückgabewert wie z.B. ein handle. Siehe Doku Wink

Gruß DSP
Private Nachricht senden Benutzer-Profile anzeigen
 
trust114
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2016, 21:12     Titel:
  Antworten mit Zitat      
Danke für die schnelle Antwort DSP!

Werde ich mir jetzt ansehen.
Private Nachricht senden Benutzer-Profile anzeigen
 
trust114
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2016, 21:27     Titel:
  Antworten mit Zitat      
Hm, also wenn ich nun statt dem Befehl implay den Befehl VideoReader verwende zeigt er mir leider kein Video an.
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 28.01.2016, 21:35     Titel:
  Antworten mit Zitat      
Selbstverständlich nicht. Dafür nutzt du weiterhin implay. Um aber die Framerate zu verändern, brauchst du Videoreader. Das geht einfach nicht mit implay, da diese Funktion nur zur Videowiedergabe und nicht zur Videobearbeitung verwendet werden kann. Das geht aus der Doku zu den Befehlen eigentlich klar hervor.
Private Nachricht senden Benutzer-Profile anzeigen
 
trust114
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2016, 22:02     Titel:
  Antworten mit Zitat      
Ok. Dann erstmal so:

Code:
function [] = moviecontrol(varargin)

if nargin == 1
       MovieName == varargin{1}
       handle=implay('Film.avi')

elseif nargin == 2
       MovieName == varargin{1};
       Frames = varargin{2};
       
       Movie_handle=implay('Film.avi')
       v=VideoReader('Film.avi')
       

end
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 28.01.2016, 22:15     Titel:
  Antworten mit Zitat      
Ich hab doch schon bereits geschrieben, dass die Funktion implay keinen Rückgabewert hat.

Code:
Movie_handle=implay('Film.avi')


Wo soll also das handle herkommen?


Code:

 function [] = moviecontrol(varargin)

if nargin == 1
       MovieName == varargin{1}
       implay('Film.avi')

elseif nargin == 2
       MovieName == varargin{1};
       Frames = varargin{2};      

       Movie_handle = VideoReader('Film.avi');
       set(Movie_handle,'Framerate',Frames)
       
      % oder
      implay('Film.avi',Frames)
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
trust114
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2016, 22:46     Titel:
  Antworten mit Zitat      
tschuldige. Jetzt zeigt er aber leider in der Zeile von:

Code:
set(Movie_handle,'Framerate',Frames)


eine Fehlermeldung. Falls ich nun eingebe:

Code:
moviecontrol('Film.avi',10) % Für 10 Frames pro Sekunde


kommt die Fehlermeldung:

You cannot set the read-only property 'FrameRate' of
VideoReader.

Heißt das das die Eingabe nicht ausreicht?
Sorry Crying or Very sad
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 28.01.2016, 23:02     Titel:
  Antworten mit Zitat      
Die Fehlermeldung besagt, dass man die Framerate nur auslesen aber nicht verändern kann.

Dazu müsstest du das Video neu erstellen...
http://ch.mathworks.com/help/matlab/ref/videowriter-object.html
http://ch.mathworks.com/help/matlab/ref/videowriter.open.html

Code:
v = VideoWriter('newfile.mj2','Motion JPEG 2000');
v.FrameRate = Frames;



Oder du nutzt diesen Vorschlag:
Code:
implay('Film.avi',Frames)
Private Nachricht senden Benutzer-Profile anzeigen
 
trust114
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 80
Anmeldedatum: 10.11.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.01.2016, 23:05     Titel:
  Antworten mit Zitat      
Jep mach ich. Dank dir auf jedenfall nochmal 1000 Mal das mir geholfen hast: Surprised
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.