2016-05-03 2 views
0

Ich versuche, einen Code zu entwickeln (wie folgt), um ein Video von Dateiaufruf 'Bild' anzuzeigen, die JPEG-Bilder enthalten. Allerdings bleibt die Anzeige bis zum letzten Bild stehen und das Displayfenster blinkt. Wie kann ich eine Schleife erstellen, so dass der Rahmen 1-mal-1 flüssig angezeigt wird?Anzeigebilder Sequenz mit Videofilereader

file = dir('image/*.jpg'); 
Numfile = size(file,1); 
for I=1:Numfile 
vidRead = vision.VideoFileReader(Files(I).name); 
vidPlayer = vision.VideoPlayer; 
while ~isDone(vidRead) 
    vidFrame = step(vidRead); 
    step(vidPlayer, vidFrame); 
end 
end 
+0

Verschieben 'imshow' in der for-Schleife. – hbaderts

+0

@hbaderts Danke. Aber es läuft nicht reibungslos. Wie kann ich es reibungslos laufen lassen? Ich meine ohne Pause. –

Antwort

1
file = dir('image/*.jpg'); 
Numfile = size(file,1); 
vidPlayer = vision.VideoPlayer; 
for I=1:Numfile 
    vidFrame = imread(file(I).name); 
    step(vidPlayer, vidFrame); 
end 
+0

Dank @Dima, aber wie kann ich es mit normaler Geschwindigkeit spielen? –

+0

'vision.VideoPlayer' kennt nichts von" normaler Geschwindigkeit ". Es macht nur die Frames so schnell wie möglich. Wenn Sie die Wiedergabe verlangsamen möchten, können Sie eine 'Pause'-Anweisung vor 'Schritt' setzen. – Dima