concatenation of array structure

% concatenation output of frames in a video
[ video_file_name,video_file_path ] = uigetfile({'*.avi';'*.MP4'},'Pick a video file');
if(video_file_path == 0)
return;
end
input_video_file = [video_file_path,video_file_name];
videoObject = VideoReader(input_video_file);
vid=videoObject;
numFrames = vid.NumberOfFrames;
n=numFrames;
%
for i = 1:2:n
frames = read(vid,i);
grayImage = rgb2gray(frames);
thresholdLevel = graythresh(grayImage);
binaryImage = im2bw( grayImage, thresholdLevel);
end
% the Problem is that how to store the output of "binaryImage" of first iteration till the last iteration in an Output Array. ie (binary output of Frame_1, binary output of frame 2 . . . . . till last frame) Plz Help

 Accepted Answer

An easy solution is to store each result in a cell array
binaryImage = cell(n,1) ;
for i = 1:2:n
...
binaryImage{i} = im2bw( grayImage, thresholdLevel);
end
Later, you can concatenate these cell into a single 3D array using cat and comma-separated list expansion (provided all images are 2D and of the same size).
binaryImageArray = cat(3,binaryImage{:})

More Answers (0)

Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!