MATLAB Answers

0

save snapshot image in a variable within a loop!!

Asked by Khaled Al-Faleh on 4 Apr 2017
Latest activity Commented on by Jan
on 4 Apr 2017
please need help in this why the data(i) variable in while loop give me an error here I want to take a picture after each 5 second and I need it continuous so I used while(1) ...
vid = videoinput('winvideo',1);
set(vid, 'FramesPerTrigger', Inf);
set(vid, 'ReturnedColorspace', 'rgb');
i = 0;
while(1)
data(i) = getsnapshot(vid);
imshow(data(i));
i=i+1;
pause(5);
end

  1 Comment

Jan
on 4 Apr 2017
You mention an error. Then please post the message. It is easier to suggest an improvement than to guess the problem.

Sign in to comment.

2 Answers

Answer by Image Analyst
on 4 Apr 2017
 Accepted Answer

Get rid of the (i) and have just data, or better yet, a more descriptive filename:
for f = 1 : 1000 % view and save 1000 frames then quit.
thisFrame = getsnapshot(vid);
imshow(thisFrame);
drawnow;
baseFileName = sprintf('Frame %3.3d.png', f);
fullFileName = fullfile(folder, baseFileName);
imwrite(thisFrame, fullFileName);
end

  0 Comments

Sign in to comment.


Answer by Joseph Cheng
on 4 Apr 2017
Edited by Joseph Cheng
on 4 Apr 2017

from what i see get snapshot returns a NxMx(1 for mono 3 for color) and you're trying to stuff it into a 1x1. what you should try is i=1 for start as data(0) isn't how matlab works. and put data as data(:,:,i) for monochrome as you'll be putting a NxM into data's NxMx1 indexes. change the data() into a cell array if you want to store it as an rgb image.

  0 Comments

Sign in to comment.