Cómo procesar video grande en Matlab con for loop y sin error de memoria
Soy nuevo en el procesamiento de Matlab, y me gustaría leer y procesar un video grande (más de 200k fotogramas) dentro de un "bucle for" (o sin él). En particular, me gustaría:
leer el video con VideoReader,subdividir el video en n-epoch de 1000 cuadros cada uno,procese cada época de 1000 cuadros, leyendo: el primer cuadro de la época, salte dos, lea el cuadro, salte dos, y así sucesivamente (por ejemplo i = 1: 3: nFrames),considerando todas las épocas que necesito para convertir cada "marco RGB" leído en im2bwdespués de la conversión, necesito hacer la correlación bidimensional "corr2" considerando el primer cuadro de video ("mov (1,1) .cdata") y todos los cuadros leídos dentro de la época.almacenar el resultado de "corr2" en un vector.En resumen, esto es lo que necesito hacer. Gracias a todos
Esto es lo que tengo hasta ahora, sobre "corr2":
for frame_ind = 1 : nFrames
mov(frame_ind).cdata = im2bw(rgb2gray(read(xyloObj,frame_ind)),0.20);
end
%% Corr2 to compare BW video frames
for frame_ind2 = 1:(frame_ind-1)
R(frame_ind2)=corr2(mov(1,frame_ind2).cdata,mov(1,frame_ind2+1).cdata);
end
TF= isnan(R);
g=sum(TF);
f=(length(R)-g);
if (g~=(length(R)))
%%If Part has errors
disp('"Part_1" has video interferences/noise/problems, see "Testresult.txt" for more information.');
else
%%If Part has not errors
displ=strcat('"Part_1" has not video interferences/noise/problems.');
end