我是 Matlab 处理的新手,我想在“for 循环”(或没有它)内读取和处理一个大型视频(超过 200k 帧)。特别是,我想:
- 使用 VideoReader 阅读视频,
- 将视频细分为每个 1000 帧的 n-epoch,
- 处理1000帧的每个epoch,读取:epoch的第一帧,跳过两帧,读取帧,跳过两帧,以此类推(例如i=1:3:nFrames),
- 考虑到每个时代,我需要将读取的每个“RGB 帧”转换为 im2bw
- 转换后,我需要考虑第一个视频帧(“mov(1,1).cdata”)和在该时期内读取的每一帧,进行“corr2”2D 互相关,
- 将“corr2”的结果存储到向量中。
总之,这是我需要做的。谢谢你们
这是我到目前为止所拥有的,关于“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