Ich möchte einen Screenshot eines Videoframes nehmen und jeden Frame als Bild in einem Ordner auf meinem Desktop speichern. Es gibt jedoch nur bestimmte Frames, die ich erfassen möchte, die in ein Textdokument geschrieben werden.Speichern Sie extrahierte Videoframes als Bilder
Meine Frage ist, wie lese ich in den Rahmennummern in diesem Textdokument gespeichert und extrahiere nur diese Frames in PNG-Dateien?
Vielen Dank für Ihre Hilfe. Wenn ich etwas klären muss, bitte fragen.
frames = dlmread('Frames.txt');
%getting no of frames
numFrames = mov.NumberOfFrames;
%setting current status of number of frames written to zero
numFramesWritten = 0;
for t = frames: numFrames
currFrame = read(mov, t); %reading individual frames
opBaseFileName = sprintf('%3.3d.png', t);
opFullFileName = fullfile(opFolder, opBaseFileName);
imwrite(currFrame, opFullFileName, 'png'); %saving as 'png' file
progIndication = sprintf('Wrote frame %4d of %d.', t, numFrames);
disp(progIndication);
numFramesWritten = numFramesWritten + 1;
end
Was Code bereits Sie haben ? Wie ist das Format Ihres Textdokuments? – hbaderts
Der Code, den ich ändern möchte, ist eine for-Schleife, die jeden Frame als PNG-Datei extrahiert. Ich werde es dem Körper meiner Frage oben hinzufügen. Das Textdokument ist einfach eine Spalte mit Zahlen. Ich kann den Extrakt mit der ersten Zahl im Textdokument beginnen lassen, aber es wird nur um eins erhöht. Ich bin mir nicht sicher, wie ich diese Zahlen richtig durchlaufe. –