Azzera filtri
Azzera filtri

Read specific frames from a video

3 visualizzazioni (ultimi 30 giorni)
Naseer Khan
Naseer Khan il 21 Ago 2016
Risposto: Tuan Nguyen il 30 Mag 2017
I want to read some specific frames from a video.Following is my code
videoData=VideoReader(absPath);
i=1;
while hasFrame(videoData)
img = readFrame(videoData);
filename = [sprintf('%03d',i) '.jpg'];
fullname = fullfile(savePath,filename);
imwrite(img,fullname) % Write out to a JPEG file (img1.jpg, img2.jpg, etc.)
i = i+1;
end
Issue is that I have seen on sites that "read" method got used but it is NOT available in Matlab 2015.Is there some way? Please also tell me what would I need to do if I need to extract frames after a particular time delay?
regards

Risposte (2)

Geoff Hayes
Geoff Hayes il 21 Ago 2016
Nasser - try using read instead which was introduced in R2010b (and is to be replaced by readFrame).
  2 Commenti
Naseer Khan
Naseer Khan il 21 Ago 2016
readFrame does not have options like frame number or read frame after some time?
Geoff Hayes
Geoff Hayes il 21 Ago 2016
Nasser - I don't understand. Do you have the function readFrame or not?

Accedi per commentare.


Tuan Nguyen
Tuan Nguyen il 30 Mag 2017
For example if i want to read frame 10 to 20:
arr=10:20; i=1; while hasFrame(videoData) if(i>max(arr)) break; img = readFrame(videoData); if (any(i==arr) filename = [sprintf('%03d',i) '.jpg']; fullname = fullfile(savePath,filename); imwrite(img,fullname)
i = i+1;
end

Categorie

Scopri di più su Convert Image Type in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by