MATLAB Answers


image acquisition and imaqmontage

Asked by Rafael Madrid on 8 Sep 2014
Latest activity Commented on by Image Analyst
on 8 Sep 2014
I've captured a number of frames using the image acquisition toolbox and exported them to the workplace, and want to save all of them as individual bmps. I can load all of them with imaqmontage, then save them individually with for example;
>> imaqmontage(hemi_0);
>> img = hemi_0(:,:,:,9);
>> imwrite(img,'imagename.bmp');
but that is a hassle since I will have several images. Help save them all automatically?


Sign in to comment.

1 Answer

Answer by Image Analyst
on 8 Sep 2014
 Accepted Answer

Put in a loop and call getsnapshot() instead of imaqmontage().
snappedImage = getsnapshot(videoObject);
After each call to getsnapshot, call imwrite() with a different name.


But it's not a video input object, it won't let me use getsnapshot with a uint8 series of frames.
Say if I only use
imwrite(4-Duint8array(:,:,:,1), 'im01.bmp', 'bmp');
How can I repeat this with the names increasing in number without having to type them all in?
If you have a 4D array of 3D color video frames, use a loop
for f = 1 : size(4-Duint8array, 4)
thisFrame = 4-Duint8array(:,:,:,f);
baseFileName = sprintf('frame #%d.bmp', f);
fullFileName = fullfile(folder, baseFileName);
imwrite(thisFrame, fullFileName);

Sign in to comment.