preallocation

1 vue (au cours des 30 derniers jours)
Duke Watson
Duke Watson le 3 Juin 2012
hey guys, i am new at MATLAB, I have problem in preallocating the space for the variable'M' in the following statement:
for i=1:10000
M(i-1)=im2frame(int8(fg),gray(256));
I don't know what is the diminsion of this structure or the statement for preallocating space for M

Réponse acceptée

Walter Roberson
Walter Roberson le 3 Juin 2012
A "frame" is a structure with the fields "cdata" and "colormap"
You should be able to preallocate with
M(10000) = struct('cdata', {[]}, 'colormap', {[]} );
Caution: in your code, you try to store into M(i-1) when "i" starts at 1. That is going to try to store into M(0) which is not a valid index for MATLAB arrays: indices must be at least 1
  4 commentaires
Duke Watson
Duke Watson le 3 Juin 2012
Sorry,i didn't get you.
I think all the frames all of the same size as i have extracted frames from a video and convert them into gray image and then again convert them into frames and then finally into video.(Frame Difference Algorithm).
Now if you get me,please tell me what should i do?
Walter Roberson
Walter Roberson le 3 Juin 2012
T1 = arrayfun( @(S) size(S.cdata), M, 'Uniform', 0);
T2 = cell2mat(T1(:));
T3 = unique(T2, 'rows');
T4 = size(T3,1);
fprintf(1, 'You have %d different sizes of frames\n', T4);

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Images dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by