splitting a video into frames using image function after using mmreader to read video file...
13 views (last 30 days)
Show older comments
*I wasn't being able to bring an avi file into the workspace, so I brought the video into the MATLAB file and played it using implay...then I want to split it into its individual frames..
According to the solution by Walter Roberson on
n=size('cell.avi')
n =
1 8
for frame= 1:n
('cell.avi')(frame)=getframe;
|
But I get_ :Error: Unbalanced or unexpected parenthesis or bracket.
_
image function!!*
Now I want the individual frames as individual images, so I put: image(('cell.avi')(1).cdata) image(('cell.avi')(1).cdata) | *Error: Unbalanced or unexpected parenthesis or bracket. * *What is wrong? I've been able to load the movie, but now I can't split it into the frames using
2 Comments
Accepted Answer
Image Analyst
on 18 Oct 2011
Look at the help for mmreader() . . . again . . . more carefully this time. You'll see read() does not take a string, it take the movie object, and the number of the frame you want to read. So instead of
video = read('cell.avi');
you'd want
% Read from ii from movie M
oneFrame = read(M, ii);
7 Comments
More Answers (2)
Sean de Wolski
on 17 Oct 2011
n=size('cell.avi')
will say that n = [1 8] since 'cell.avi' is an eight letter long string (row vector of characters).
Here's probably closer to what you want:
M = aviread('rhinos.avi');
for ii = 1:length(M)
image(M(ii).cdata)
pause(.1)
end
10 Comments
Walter Roberson
on 18 Oct 2011
M = mmreader('cell.avi');
N = M.NumberOfFrames;
for ii = 1:N
image(M.read(ii));
pause(0.1);
end
Dimple Chawla
on 17 Apr 2012
hey, it really helped me too, actually i'm working on similar project like calculating difference of object property in frame such as 1st and the 20th or the last frame. Can u help on this.?? I will deftly appreciate your effort. Thanks reply asap
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!